精华内容
下载资源
问答
  • 常见各种编码格式

    千次阅读 2019-10-07 14:00:43
    一.ANSI 这里,我将ANSI作为一个大项。...不过这样说也不准确,根据我查阅的资料来看,ASCII是早于ANSI的,所以只能说ANSI是兼容ASCII的,而不能说ASCII是根据ANSI编码所得。 ASCII,他的全称为American S...

    一.ANSI

    1. 这里,我将ANSI作为一个大项。根据我自己的理解,ANSI并不是一种具体的编码,而是一种字符代码。比如:ASCII、GB2312、GBK、GB18030等都属于ANSI的范畴。不过这样说也不准确,根据我查阅的资料来看,ASCII是早于ANSI的,所以只能说ANSI是兼容ASCII的,而不能说ASCII是根据ANSI编码所得。

    2. ASCII,他的全称为American Standard Code for Information Interchange,美国信息交换标准代码。要知道,一个字节为8位,而8位最多可以组合256种不同的状态,用来保存英文、数字、符号完全够用了,而事实上,ASCII只用了前128个字符。但是后来除了美国,其他的一些国家也使用了计算机,但是他们的文字并非都是这些字母,所以又使用了后面的128位,又叫:”扩展字符集“。

    3. MBCS:就目前我查阅的资料来看,MBCS是一种统称,许多汉字的编码都属于MBCS,比如GB2312、GBK、GB18030等。因为无论ASCII编码如何扩展,也满足不了中文,中文的字数太庞大了。MBCS支持中英文混用,英文的话就和ASCII一样,中文的话就占2个字节,GB2312的字数最少,其规定必须2个字节都大于127才表示一个汉字;其次是GBK,其规定只要第一个字节大于127就可以了;最后是GB18030,具体编码不清楚,好像不止2个字节,但应该是兼容GBK的,字数比前面2个要多的多。

    4. 现在,再来看ANSI,叫美国国家标准协会,顾名思义是用来定义世界编码方式的,不像ASCII,当初创建的时候只是想给美国人自己用而已。ANSI的规则是,ASCII不能动,也就是说所有的ANSI标准都是兼容英文的,比如中文的GBK编码就可以实现中文和英文混用。但是,每个国家自己的文字编码就各不相同了,比如中文的ANSI编码和日本的ANSI编码就完全不同,所以无法实现中文和日文的混用。另外,只要你的编码被ANSI认可,以后世界上任何地方只要使用中文,就必须用中国的这一套编码方案。

    二.Unicode

    1. 根据网上查询的资料来看,有的说Unicode是一种符号集,它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储,并不是一种编码方式。但是我们常用的TXT文档中,明显就有一种Unicode编码格式,这是为什么呢?

    2. 从我目前查阅的资料来看,Unicode确实是一种符号集,可以简写为UCS(Unicode Character Set)。但是,Unicode也是有他自己的编码格式的,比如UCS-2就是用两个字节编码、UCS-4用4个字节编码。那么,TXT文档中的Unicode是什么呢?其实就是UCS-2,并且是小端模式。

      当然,以上都是我查阅资料所获取的,如果不对,麻烦告知。

    3. 所以,Unicode将全世界所有的文字等都进行了统一的编码,这样就不会有ANSI的兼容问题。

    4. 但是Unicode一直得不到推广。因为英文只占一个字节,但是在Unicode却要占2个字节,有很大的浪费;另外,又如何去区分Unicode和ANSII呢,计算机如何知道3个字节到底是一个字符,还是3个字符呢?

    5. 直到互联网的出现,推动了Unicode的推广。因为,互联网拉近了人和人之间的距离。那么如果用ANSI的话,编码格式太乱了。而UTF标准就出现了,其中UTF-8就是在互联网上使用最广的一种unicode的实现方式,因为他是变长的,所以极大的节省了空间,这种为传输而出现的编码格式,使得全世界的编码方式统一,非常的便利。

      这里记录下:java是双字节编码,采用的是UTF-16BE,中文占2个字节,英文占2个字节

    三.URL编码

    1. url编码是一种浏览器用来打包表单输入的格式,其基本格式为"key=value"这种键值对的,如果要传多个参数就需要用“&”符号对键值对进行分割。

    2. URL编码其实使用的是ascii码的16进制,所以,URL中只能有英文、数字还有一些特殊字符。

    3. 那我们在访问网址的时候,有时候确实后面的参数有中文。这时候,就使用了encode编码,将中文写成%XX的格式,然后再通过decode还原成中文。当然,不仅仅是中文,许多字符等都是这样操作的。具体的可以自行百度。

    4. 那么这些中文,是使用的什么编码方式转变为%xxx的形式呢?肯定不是ASCII,因为他压根不认识中文。从我网上查询的资料来看,貌似UTF-8占多数,但好像也有GB2312这种编码方式。

    四.一个经典的问题:TXT显示联通乱码

    1. 新建一个文本文档,在里面输入“联通”2个字。

      各种编码格式介绍

    2. 然后关闭文档,重新打开,发现变成乱码了

      各种编码格式介绍

    3. 这是为什么呢?我们再写一个TXT文档,写入你好,重新打开文档后,发现是可以正确显示的,我们看一下他的编码方式。通过“另存为”,可以发现编码方式为ANSI

      各种编码格式介绍

    4. 在看一下刚才写的联通,发现编码方式为UTF-8,此时隐约可以知道,应该是编码导致的。

      各种编码格式介绍

    5. 这里说一个概念:首先,计算机只认识0和1,所以任何字符等在计算机里,都是以二进制的形式存储的,也就是字节的形式存储。那么,当计算机中的字节序列是以某种编码格式存放的,想要将这些字节序列重新变成人所认识的字符串,也需要使用这种编码格式,否则会出现乱码。

    6. 那么,刚才那个TXT文本,其实就是文本文件。文本文件在计算机中存储的就是字节序列。如果我们直接在中文的电脑上创建一个文本文件,那么这个文本文件只认识ANSI编码,(这句话并不是指文本文件只认识ANSI编码,其实你可以将各种的编码格式的字节存放进去,但在中文机器上直接创建,就有其特殊性)。而联通这两个字巧了,刚好符合UTF-8的编码格式,所以就当做UTF-8存储了,但重新将字节转换为字符串的时候,是以ANSI格式转换的,肯定是乱码。

    7. 现在,你再试一下,在联通的后面加入任意的字,比如联通哈哈。那么,哈哈2个字和UTF-8的编码格式不一样的,所以仍然会作为ANSI格式存储,就不会有问题了。

      各种编码格式介绍

    展开全文
  • Java工程编码格式由GBK转化成utf-8(编码格式互转)

    万次阅读 多人点赞 2021-07-15 21:37:15
    在写项目的过程中我发现有的地方编码格式被设置成了 gbk 如果用eclipse等工具直接改回utf-8编码格式则会出现乱码。 在这里搞了一个工具,直接输入之前的编码格式跟要改的编码格式就会自动转换 转换完成后直接设置...

    在写项目的过程中我发现有的地方编码格式被设置成了 gbk 如果用eclipse等工具直接改回utf-8编码格式则会出现乱码。

    下载:https://download.csdn.net/download/weixin_44893902/20367405

    在这里搞了一个工具,直接输入之前的编码格式跟要改的编码格式就会自动转换

    在这里插入图片描述
    转换完成后直接设置为更改后的格式即可
    在这里插入图片描述

    以下是源代码:

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.io.UnsupportedEncodingException;
    import java.util.Scanner;
    
    /**
     * 把gbk编码的程序变换为用utf-8的格式编码
     *
     * 此程序只是为了改变 .java文件的编码格式如果你想要变换为其他格式只需要改变下面对应的编码按格式
     *
     * @author 明金同学	CSDN:https://ymjin.blog.csdn.net/
     */
    public class Files {
    
        /**
         *
         * @param args
         * @throws UnsupportedEncodingException
         * @throws IOException
         */
        public static void main(String[] args) throws UnsupportedEncodingException, IOException {
            Scanner scan = new Scanner(System.in);
            System.out.println("请输入需要改变编码格式的文件位置");
            String str = scan.nextLine();
            File file = new File(str);
            System.out.println("文件的初始编码");
            String bm1 = scan.nextLine();
            System.out.println("文件需要转换成的编码");
            String bm2 = scan.nextLine();
            getAllFiles(file, bm1, bm2);
        }
    
        /**
         *
         * @param file 要编译的文件
         * @param bm1 文件的初始编码
         * @param bm2 文件需要转换成的编码
         * @throws FileNotFoundException 文件找不到
         * @throws UnsupportedEncodingException 编码出错
         * @throws IOException io异常
         */
        public static void getAllFiles(File file, String bm1, String bm2) throws FileNotFoundException, UnsupportedEncodingException, IOException {
            if (file.isDirectory()) {
                File[] test = file.listFiles();
                for (File test1 : test) {
                    //类的名字
                    String str = test1.getPath();
                    if (str.endsWith("java") & test1.isFile()) {
                        String[] s = str.split("\\.");
                        String filecope = s[0] + "cope." + s[1];
                        System.out.println(filecope);
                        File fil = new File(filecope);
                        //转格式
                        InputStreamReader isr = new InputStreamReader(new FileInputStream(test1), bm1);
                        OutputStreamWriter osr = new OutputStreamWriter(new FileOutputStream(fil), bm2);
                        int re = -1;
                        while ((re = isr.read()) != -1) {
                            osr.write(re);
                        }
                        isr.close();
                        osr.close();
                        InputStreamReader isrr = new InputStreamReader(new FileInputStream(fil), bm2);
                        OutputStreamWriter osrw = new OutputStreamWriter(new FileOutputStream(test1), bm2);
                        int r = -1;
                        while ((r = isrr.read()) != -1) {
                            osrw.write(r);
                        }
                        isrr.close();
                        osrw.close();
                        boolean d = fil.delete();
                        System.out.println(str + "文件转换utf-8成功:" + d);
                    }
                    getAllFiles(test1, bm1, bm2);
                }
            }
        }
    
    }
    

    参考:
    将GBK项目修改成UTF-8项目
    https://blog.csdn.net/chengzhuo5471/article/details/100840187
    https://my.oschina.net/momomo/blog/845610

    展开全文
  • 批量转换文件编码格式为UTF-8工具

    千次下载 热门讨论 2012-08-02 16:44:56
    批量转换文件编码格式为UTF-8工具.zip 支持多层文件夹替换! 使用说明: 1.文件根目录:即您要转码的文件所在根目录 2.转码文件目录:即您转码后的文件所在目录 3.转码文件后缀:指[文件根目录]下,需要转码的文件后缀,...
  • 字符编码(Character Encoding)是一套法则,使用该法则能够对自然语言的字符的一个字符集(如字母表或音节表),与计算机能识别的二进制数字进行配对。为了使国际间信息交流更加方便,国际组织制定了 UNICODE 字符...

    0 前话

    我相信不少程序员遇到过这样的问题:在程序里写了一段代码读文件里面的文本内容,一运行显示出来却是乱码。

    为什么会乱码?
    这是因为那个文件的编码格式和代码里处理文本时认为的编码格式不一样。比如,你新建了一个MFC工程,把Character Set设置为了Use Unicode Caracter Set(MFC工程默认为这个设置),然后你写了一段代码去读一个文本文档,这个时候MFC直接认为你这个文本文档就是unicode编码格式,当你的文本文档不是unicode编码时就会出现乱码。
    这个道理其实很简单。假如你只懂中文,而且只会用中文去处理你看到的文档信息,有一天,你看到一篇英文文档,你把英文当成中文拼音看,你的解读就会和原文有很大出入,有的英文单词可能刚好和某个拼音对应,比如“he”英文的意思是“他”而按拼音来你可以理解为“呵”“河”“喝”之类的,但你绝对不会认为是“他”的意思。有的英文单词并不能构成完整的拼音,这个时候你就会心里嘀咕“麻蛋,这啥玩意儿?!”,于是你就一团乱麻了。当你用中文去解读日文时,看到那些奇形怪状的符号你肯定会更加一团乱麻,因为用拼音都无法解读。

    那么,什么是编码格式?有哪些编码格式?如何判断从文本文档读取的文本内容是什么编码格式的?如何转换编码格式?
    本文就以上几个问题展开讨论,并尝试给出解决方案。其实本人也是小白,有什么说的不对的地方请各位指正,谢谢!

    本文内容及代码参考了网上其他网友写的一些文章,参考链接会在本文适当地方或文末给出,如有侵权,请联系我。
    如果要转载本文,请以链接形式注明出处。

    1 字符集和字符编码

    1.1 字符集

    字符集(Charcater Set或Charset)是一个系统支持的所有抽象字符的集合,也就是一系列字符的集合。字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。常见的字符集有:ASCII字符集、GB2312字符集(主要用于处理中文汉字)、GBK字符集(主要用于处理中文汉字)、Unicode字符集等。

    1.2 字符编码

    字符编码(Character Encoding)是一套法则,使用该法则能够对自然语言的字符的一个字符集(如字母表或音节表),与计算机能识别的二进制数字进行配对。即它能在符号集合与数字系统之间建立对应关系,是信息处理的一项基本技术。通常人们用符号集合(一般情况下就是文字)来表达信息,而计算机的信息处理系统则是以二进制的数字来存储和处理信息的。字符编码就是将符号转换为计算机能识别的二进制编码。

    1.3 字符集和字符编码的关系

    一般一个字符集等同于一个编码方式,ANSI体系(ANSI是一种字符代码,为使计算机支持更多语言,通常使用 0x80~0xFF 范围的 2 个字节来表示 1 个字符)的字符集如ASCII、ISO 8859-1、GB2312、GBK等等都是如此。一般我们说一种编码都是针对某一特定的字符集。
    一个字符集上也可以有多种编码方式,例如UCS字符集(也是Unicode使用的字符集)上有UTF-8、UTF-16、UTF-32等编码方式。

    1.4 字符编码的发展历史

    从计算机字符编码的发展历史角度来看,大概经历了三个阶段:

    第一个阶段:ASCII字符集和ASCII编码。
    计算机刚开始只支持英语(即拉丁字符),其它语言不能够在计算机上存储和显示。ASCII用一个字节(Byte)的7位(bit)表示一个字符,第一位置0。后来为了表示更多的欧洲常用字符又对ASCII进行了扩展,又有了EASCII,EASCII用8位表示一个字符,使它能多表示128个字符,支持了部分西欧字符。

    第二个阶段:ANSI编码(本地化)
    为使计算机支持更多语言,通常使用 0x80~0xFF 范围的 2 个字节来表示 1 个字符。比如:汉字 ‘中’ 在中文操作系统中,使用 [0xD6,0xD0] 这两个字节存储。
    不同的国家和地区制定了不同的标准,由此产生了 GB2312, BIG5, JIS 等各自的编码标准。这些使用 2 个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码。在简体中文系统下,ANSI 编码代表 GB2312 编码,在日文操作系统下,ANSI 编码代表 JIS 编码。
    不同 ANSI 编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,存储在同一段 ANSI 编码的文本中。

    第三个阶段:UNICODE(国际化)
    为了使国际间信息交流更加方便,国际组织制定了 UNICODE 字符集,为各种语言中的每一个字符设定了统一并且唯一的数字编号,以满足跨语言、跨平台进行文本转换、处理的要求。UNICODE 常见的有三种编码方式:UTF-8(1个字节表示)、UTF-16((2个字节表示))、UTF-32(4个字节表示)。

    1.5 Big Endian和Little Endian

    big endian和little endian是CPU处理多字节数的不同方式。例如“汉”字的Unicode编码是6C49。那么写到文件里时,究竟是将6C写在前面,还是将49写在前面?如果将6C写在前面,就是big endian。如果将49写在前面,就是little endian。

    2 检测文本的编码格式

    下面对notepad中几种常见的编码格式(ANSI、UTF-8、UTF-8 无BOM、UCS-2 Big Endian、UCS-2 Little Endian)进行讲解。

    2.1 原理

    Unicode规范中推荐的标记字节顺序的方法是BOM。BOM不是“Bill Of Material”的BOM表,而是Byte Order Mark。BOM是一个有点小聪明的想法:

    在UCS编码中有一个叫做”ZERO WIDTH NO-BREAK SPACE”的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输字符”ZERO WIDTH NO-BREAK SPACE”。

    这样如果接收者收到FEFF,就表明这个字节流是Big-Endian的;如果收到FFFE,就表明这个字节流是Little-Endian的。因此字符”ZERO WIDTH NO-BREAK SPACE”又被称作BOM。

    UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。字符”ZERO WIDTH NO-BREAK SPACE”的UTF-8编码是EF BB BF(读者可以用我们前面介绍的编码方法验证一下)。所以如果接收者收到以EF BB BF开头的字节流,就知道这是UTF-8编码了。

    Windows就是使用BOM来标记文本文件的编码方式的。

    2.2 检测策略

    根据2.1节所述,可以得到以下检测策略:
    1. 如果2个字节是0xFF 0xFE,则以Unicode(LE)的方式读取
    2. 如果2个字节是0xFE 0xFF,则以Unicode BE的方式读取
    3. 如果前2个字节是0xEF 0xBB,那么判断第3个字节是不是0xBF,如果是的话就以UTF-8的方式进行读取。
    4. 判断是否符合UTF-8的编码规范,如果符合就以UTF-8的方式进行读取
    如果以上都不是,则以ANSI的方式进行读取。

    2.2 代码实现

    下面用C语言实现检测文本的编码格式。

    // 枚举编码格式
    enum EncodingType {
        ENCODINGTYPE_ANSI = 0,    // ANSI
        ENCODINGTYPE_ULE,         // UCS Little Endian
        ENCODINGTYPE_UBE,         // UCS Big Endian
        ENCODINGTYPE_UTF8,        // UTF-8
        ENCODINGTYPE_UTF8_NOBOM,  // UTF-8 No BOM
    }
    
    // 检测是否为UTF-8无BOM格式编码
    // src为文本内容,len为文本的长度
    BOOL CheckUTF8NoBOM(const void* pBuffer, long size)
    {     
        bool IsUTF8 = true;     
        unsigned char* start = (unsigned char*)pBuffer;     
        unsigned char* end = (unsigned char*)pBuffer + size;     
        while (start < end)     
        {     
            if (*start < 0x80) {   
                // (10000000): 值小于0x80的为ASCII字符  
                start++;     
            } else if (*start < (0xC0)) {
                // (11000000): 值介于0x80与0xC0之间的为无效UTF-8字符
                IsUTF8 = false;     
                break;     
            } else if (*start < (0xE0)) {     
                // (11100000): 此范围内为2字节UTF-8字符
                if (start >= end - 1) break;     
                if ((start[1] & (0xC0)) != 0x80) {     
                    IsUTF8 = false;     
                    break;     
                }     
                start += 2;     
            } else if (*start < (0xF0)) {
                // (11110000): 此范围内为3字节UTF-8字符
                if (start >= end - 2) break;     
                if ((start[1] & (0xC0)) != 0x80 || (start[2] & (0xC0)) != 0x80) {     
                    IsUTF8 = false;     
                    break;     
                }     
                start += 3;     
            } else {     
                IsUTF8 = false;     
                break;     
            }     
        }     
        return IsUTF8;     
    }
    
    // 从文本中获取编码格式
    // src为文本内容,len为文本的长度
    EncodingType GetEncodingTypeFromStr(const TCHAR *src, long len)
    {
        const PBYTE pBuffer = (const PBYTE)src;
        if (pBuffer[0] == 0xFF && pBuffer[1] == 0xFE)
            return ENCODINGTYPE_ULE;
        if (pBuffer[0] == 0xFE && pBuffer[1] == 0xFF)
            return ENCODINGTYPE_UBE;
        if (pBuffer[0] == 0xEF && pBuffer[1] == 0xBB && pBuffer[2] == 0xBF)
            return ENCODINGTYPE_UTF8;
        if (CheckUTF8NoBOM(src, len))
            return ENCODINGTYPE_UTF8_NOBOM;
        else return ENCODINGTYPE_ANSI;
    }
    

    3 编码格式转换

    下面给出几种常见的编码格式的转换的C语言实现。

    wstring StrToWstr( UINT CodePage,const string& str )
    {
        int len = str.length();
        wstring  wStr = L"";
        if(len <= 0) return wStr;
    
        int  unicodeLen = ::MultiByteToWideChar( CodePage,0,str.c_str(),-1,NULL,0 );
    
        wchar_t *  pUnicode;
        pUnicode = new  wchar_t[unicodeLen+1];
        memset(pUnicode,0,(unicodeLen+1)*sizeof(wchar_t));
        ::MultiByteToWideChar( CodePage,0,str.c_str(),-1,(LPWSTR)pUnicode,unicodeLen );
    
        wStr = ( wchar_t* )pUnicode;
        delete  pUnicode;
        return  wStr;
    }
    
    string WstrToStr(UINT CodePage, const wstring& wStr )
    {
        int len = wStr.length();
        string  str = "";
        if(len <= 0) return str;
    
        char*     pElementText;
        int    iTextLen;
    
        iTextLen = WideCharToMultiByte( CodePage,0,wStr.c_str(),-1,NULL,0,NULL,NULL );
    
        pElementText = new char[iTextLen + 1];
        memset( ( void* )pElementText, 0, sizeof( char ) * ( iTextLen + 1 ) );
        ::WideCharToMultiByte( CodePage,0,wStr.c_str(),-1,pElementText,iTextLen,NULL,NULL );
    
        str = pElementText;
        delete[] pElementText;
    
        return str;
    }
    
    wstring ANSIToUnicode( const string& strANSI )
    {
        return StrToWstr( CP_ACP,strANSI );
    }
    wstring UTF8ToUnicode( const string& strUTF8 )
    {
        return StrToWstr( CP_UTF8,strUTF8 );
    }
    string UnicodeToANSI( const wstring& strUnicode )
    {
        return  WstrToStr(CP_ACP, strUnicode );
    }
    string UnicodeToUTF8( const wstring& strUnicode )
    {
        return  WstrToStr(CP_UTF8, strUnicode );
    }
    

    4 参考文章

    http://blog.csdn.net/luoweifu/article/details/49382969
    http://www.fmddlmyy.cn/text6.html
    http://www.cnblogs.com/lkpp/p/encoding_detection.html
    http://blog.csdn.net/apple_8180/article/details/7007114
    http://blog.csdn.net/turingo/article/details/8136644
    http://blog.csdn.net/bladeandmaster88/article/details/54767487

    展开全文
  • vscode设置编码格式的几种方法

    千次阅读 2021-07-25 21:32:00
    摘要:vscode的编码格式有很多种,默认的是UTF-8,中文常用的是GBK。编码格式不同,可能会导致中英文显示乱码等情况。本文介绍几种常用的设置方式。OS:win7 x64,vscode version(1.45.1)

    摘要:vscode的编码格式有很多种,默认的是UTF-8,中文常用的是GBK。编码格式不同,可能会导致中英文显示乱码等情况。本文介绍几种常用的设置方式。OS:win7 x64,vscode version(1.45.1)

    第一种方法:状态栏修改法

    状态栏位于整个vscode最下方的窄长条区域,如下图所示,当前的编码格式是GBK,如果要修改,可以用鼠标单击“GBK”三个字母。

    在vscode的编辑栏弹出两个选项,我们可以选择Save with Encoding。

    接着又弹出一系列的编码选项,假如我们要修改为UTF-8格式,就可以直接选择即可。修改完毕之后,状态栏的显示就由GBK变更为UTF-8了。

     

     第二种方法:全局变量法

    方法是在“我的电脑”上面右键,选择“属性”,然后选择“高级系统设置”,按照下图所示设置环境变量。新建“系统变量”,变量名字是PYTHONIOENCODING,变量值是UTF8。设置完重启vscode即可。

     第三种方法:vscode自带设置法

    vscode自己带有设置按钮,如下图所示。选择Settings。

    在弹出的对话框中搜索encoding,然后如下图所示,可以下拉修改编码格式。

    例如修改为GBK,直接下拉修改即可。

     

     第四种方法:命令行chcp法

    使用win7自带的命令函工具,或者是vscode的terminal工具。输入命令

    chcp

     就能得到当前终端的编码格式,例如936代表了GBK

    那么怎么设置?当然也是通过chcp命令。例如在vscode 的terminal调用。

    使用chcp 65001即可完成设置。

    以上讲解了常见的4种编码格式设置方法,为了使文章易读,本文就不再大篇幅讲解为什么设置,设置的区别是什么,有什么作用。

    因为大多数读者的需求可能仅仅是“有哪几种,我试试看”,“解决问题就好”。

     

     

     

    展开全文
  • 文本文件的编码方式及内容类型是应用层测试中文本测试...下面详细介绍下文件编码格式的转变及部分文本内容的格式。 1、TXT文件:大家都非常熟悉,重点讲解下编码格式的转换。 第一步:先熟悉一个linux命令; 在l...
  • Linux查看文件编码格式

    千次阅读 2020-05-14 11:02:56
    linux查看文件编码格式 file命令 首先查看file命令的help,file --help 阿斯顿 linux文件编码转换
  • 批量修改文件编码格式

    热门讨论 2011-01-31 21:49:54
    非常好用的一款编码转换软件,批量修改,不论是单文件还是文件夹,直接拖入就可修改成自己希望的编码方式,适合程序员在不同编码格式的电脑直接传输文件时转换,绿色无毒,自用,放心
  • 视频基础知识-封装格式和编码格式

    千次阅读 2018-10-11 09:56:24
    封装格式编码的关系,就是和酒与酒瓶的关系差不多,而播放器就是开酒器。为了可以喝更好的酒,最好先了解酒是什么酒,酒瓶是什么酒瓶,怎么使用开酒器开酒瓶。码率或者可以比喻做酒的原料。对于同一个酒瓶和做同一...
  • 常见视频编码格式解析

    万次阅读 多人点赞 2017-12-15 14:12:56
    常见视频编码格式解析 常见视频编码格式解析 1.MPEG2-TS编码技术 1.1.MPEG-TS简介 1.2.基本概念及TS流概述 1.3.基本流程 1.4.TS流传输包(简称TS包)结构分析 1.4.1.TS包包头 1.4.2.TS包净荷部分 1.5.PS节目流 ...
  • Java——获取字符串编码格式

    千次阅读 多人点赞 2020-08-27 09:20:52
    判断一个字符串的编码格式: public static String getEncoding(String str) { String encode = "GB2312"; try { if (isEncoding(str, encode)) { // 判断是不是GB2312 return encode; } } catch (Exception ...
  • 几种常见的编码格式

    万次阅读 多人点赞 2018-07-18 15:05:09
    为什么要编码  不知道大家有没有想过一个问题,那就是为什么要编码?我们能不能不编码?要回答这个问题必须要回到计算机是如何表示我们人类能够理解的符号的,这些符号也就是我们人类使用的语言。由于人类的语言有...
  • 图片的编码格式

    千次阅读 2019-06-23 20:50:00
    eg: 一张图片占用多少内存(800*600 分辨率 编码格式:)  1. 图片占用内存的计算公式:图片高度 * 图片宽度 * 一个像素占用的内存大小   2. 图片占用内存是:800 * 600 * 4 byte = 1875KB = 1.83M  4byte是...
  • java判断文本文件编码格式

    万次阅读 2019-08-06 09:32:00
    上篇文章需要读取当前java或者配置文件的编码格式,这里主要支持UTF-8、GBK、UTF-16、Unicode等 /** * 判断文件的编码格式 * @param fileName :file * @return 文件编码格式 * @throws Exception */ ...
  • 首先我们都知道不同网页的编码格式是不一样的 查询方法如下: 当我们知道编码格式后就可以解析网页并转换格式 代码是这样的 url = " 网-----------址 " a = urllib.request.urlopen(url) result = a.r...
  • 【视频编码格式】全面解析

    万次阅读 多人点赞 2017-11-04 12:46:34
    视频编码格式全面解析 我们在详解各种主流的视频格式之前,先抛开各种视频格式的定义,来讨论这样一件事情:你觉得目前的视频格式编码混乱吗?相信这个问题问出来,许多、、不同知识层次的人有不同的思考,但是答案...
  • tomcat设置编码格式

    千次阅读 2019-02-22 15:05:59
    乱码 tomcat设置编码格式 在tomcat的安装路径下找到server.xml文件,打开添加编码格式URIEncoding="UTF-8",保存  
  • 因为golang中的字符编码格式是utf-8格式的,如果是其他类型的编码,例如gbk,那么直接转码时出现乱码也就理所当然了。 GBK编码格式 为了更好地说明GBK的编码方式,首先在这里先说明一下ASCII码,GB231...
  • 判断文件的编码格式

    千次阅读 2018-03-06 14:20:30
    按照给定的字符集存储文件时,在文件的最开头的三个字节中就有可能存储着编码信息,所以,基本的原理就是只要读出文件前三个字节,判定这些字节的值,就可以得知其编码格式。其实,如果项目运行的平台就是中文操作...
  • 视频文件格式--视频封装格式--视频编码格式区分

    万次阅读 多人点赞 2018-11-19 10:56:28
    事实上,如果一部影片里面的图片,我们原封不动的全部存起来,空间会很大很大很大,但是如果通过一定的算法(这里不讲相关算 法),把每一张图片压缩(编码_encode)一下,变成帧。再把帧连起来变成流,再把不同的...
  • 查看文件编码格式

    千次阅读 2018-11-05 17:04:15
    How can I see which ... (查看文件编码格式) vi模式下 查看 :set fileencoding 设置 :set fileencoding xxx file命令: check a file encoding file -bi [filename] Option Description -...
  • JAVA几种常见的编码格式(转)

    万次阅读 2018-03-25 21:06:32
    本文将向你详细介绍 Java 中编码问题出现的根本原因,你将了解到:Java 中经常遇到的几种编码格式的区别;Java 中经常需要编码的场景;出现中文问题的原因分析;在开发 Java web 程序时可能会存在编码的几个地方,一...
  • PLSQL Developer设置编码格式

    千次阅读 2020-01-16 09:50:24
    1. 先查看oracle的字符编码格式 select userenv('language') from dual; 2. 然后把查询的结果设置PC环境变量,在系统变量里新建 名称NLS_LANG,值为1中查询结果,如: NLS_LANG = SIMPLIFIED CHINESE.ZHS16GBK ...
  • TXT文档如何更改默认编码格式

    千次阅读 2019-04-21 20:20:18
    更改默认的txt文档编码格式为什么要更改呢?第一步:创一个模板文本。第二步:修改模板文本的路径,指向第一步的模板文本 为什么要更改呢? 因为很多网上的txt文档,用记事本打开后,没有换行,但是作者肯定是工整的...
  • VIM 编码格式 显示乱码

    千次阅读 2018-08-05 20:47:09
    在开发跨平台项目中,由于windows和Linux环境下的编码格式不同,在Ubuntu系统中使用VIM编辑代码时中文显示乱码,设置VIM配置文件~/.vimrc,在配置文件中加入下面的配置:  set fileencodings=utf-8,ucs-bom,gb...
  • hive设置中文编码格式utf-8

    千次阅读 2021-01-04 16:33:56
    如果已存在hive元数据库,则修改元数据库字符格式 ##创建hive元数据库hive,并指定utf-8编码格式 mysql>create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci; ##修改已存在的hive元数据库,字符编码...
  • python2和python3文件的编码格式

    千次阅读 2019-07-01 16:24:48
    文本文件的编码格式(科普) 文本文件存储的内容是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等 Python 2.x 默认使用ASCII编码格式 Python 3.x 默认使用UTF-8编码格式,也有说是unicode的 UTF-8 是...
  • 【Windows CMD】设置编码格式

    千次阅读 2019-08-06 23:31:46
    windows 修改CMD 终端的默认编码格式: chcp code
  • 音频编码格式——AAC简介

    千次阅读 2021-03-08 21:29:02
    AAC (Advanced Audio Coding),高级音频编码。基于1997年,目的是为了取代MP3格式。 优点:相较于mp3,AAC格式的音质更佳,文件更小。 缺点:AAC属于有损压缩的格式,与时下流行的APE、FLAC等无损格式相比音质存在...
  • IntelliJ IDEA怎么设置编码格式

    千次阅读 2020-09-14 11:33:37
    使用intellij idea开发软件的时候,由于项目编码问题,导致乱码,所以如何统一修改项目编码,请看本篇经验 在弹出的菜单中单击【Settings】按钮 点击工具栏【File】按钮 在弹出的菜单中单击【Settings】按钮 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 979,763
精华内容 391,905
关键字:

编码格式