为什么WINDOWS下的汉字到了LINUX下乱码了?

为什么WINDOWS下的汉字到了LINUX下乱码了?,第1张

Windows下的文字到了Linux下乱码原因是Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8,编码格式不相同导致的乱码。

几种解决办法如下:

1、在Windows上用记事本把文件,选择另存为编码方式改为 UTF-8;

2、在Linux上用vim编辑,在命令模式下输入:

:set fileencoding=utf-8

3、iconv 转换,iconv的命令格式如下:

iconv -f encoding -t encoding inputfile

#比如将一个GBK编码的文件转换成UTF-8编码

iconv -f UTF-8 -t GBK file1 -o file2

#转码后,在Linux上面就不会乱码了

GBK 是又一个汉字编码标准,全称《汉字内码扩展规范》(GBK),英文名称 Chinese Internal Code Specification ,中华人民共和国全国信息技术标准化技术委员会 1995 年 12 月 1 日制订,国家技术监督局标准化司、电子工业部科技与质量监督司 1995 年 12 月 15 日联合以技监标函 [1995] 229 号文件的形式,将它确定为技术规范指导性文件,发布和实施。这一版的 GBK 规范为 1.0 版。GB 即“国标”,K 是“扩展”的汉语拼音第一个字母。

GBK 向下与 GB 2312 编码兼容,向上支持 ISO 10646.1 国际标准,是前者向后者过渡过程中的一个承上启下的标准。

ISO 10646 是国际标准化组织 ISO 公布的一个编码标准,即 Universal Multilpe-Octet Coded Character Set(简称 UCS),大陆译为《通用多八位编码字符集》,台湾译为《广用多八位编码字符集》,它与 Unicode 组织的 Unicode 编码完全兼容。ISO 10646.1 是该标准的第一部分《体系结构与基本多文种平面》。我国 1993 年以 GB 13000.1 国家标准的形式予以认可(即 GB 13000.1 等同于 ISO 10646.1)。

ISO 10646 是一个包括世界上各种语言的书面形式以及附加符号的编码体系。其中的汉字部分称为“CJK 统一汉字”(C 指中国,J 指日本,K 指朝鲜)。而其中的中国部分,包括了源自中国大陆的 GB 2312、GB 12345、《现代汉语通用字表》等法定标准的汉字和符号,以及源自台湾的 CNS 11643 标准中第 1、2 字面(基本等同于 BIG-5 编码)、第 14 字面的汉字和符号。

(一)、字汇

GBK 规范收录了 ISO 10646.1 中的全部 CJK 汉字和符号,并有所补充。具体包括:

1. GB 2312 中的全部汉字、非汉字符号。

2. GB 13000.1 中的其它 CJK 汉字。以上合计 20902 个 GB 化汉字。

3. 《简化字总表》中未收入 GB 13000.1 的 52 个汉字。

4. 《康熙字典》及《辞海》中未收入 GB 13000.1 的 28 个部首及重要构件。

5. 13 个汉字结构符。

6. BIG-5 中未被 GB 2312 收入、但存在于 GB 13000.1 中的 139 个图形符号。

7. GB 12345 增补的 6 个拼音符号。

8. 汉字“○”。

9. GB 12345 增补的 19 个竖排标点符号(GB 12345 较 GB 2312 增补竖排标点符号 29 个,其中 10 个未被 GB 13000.1 收入,故 GBK 亦不收)。

10. 从 GB 13000.1 的 CJK 兼容区挑选出的 21 个汉字。

11. GB 13000.1 收入的 31 个 IBM OS/2 专用符号。

(二)、码位分配及顺序

GBK 亦采用双字节表示,总体编码范围为 8140-FEFE,首字节在 81-FE 之间,尾字节在 40-FE 之间,剔除 xx7F 一条线。总计 23940 个码位,共收入 21886 个汉字和图形符号,其中汉字(包括部首和构件)21003 个,图形符号 883 个。

全部编码分为三大部分:

1. 汉字区。包括:

a. GB 2312 汉字区。即 GBK/2: B0A1-F7FE。收录 GB 2312 汉字 6763 个,按原顺序排列。

b. GB 13000.1 扩充汉字区。包括:

(1) GBK/3: 8140-A0FE。收录 GB 13000.1 中的 CJK 汉字 6080 个。

(2) GBK/4: AA40-FEA0。收录 CJK 汉字和增补的汉字 8160 个。CJK 汉字在前,按 UCS 代码大小排列;增补的汉字(包括部首和构件)在后,按《康熙字典》的页码/字位排列。

2. 图形符号区。包括:

a. GB 2312 非汉字符号区。即 GBK/1: A1A1-A9FE。其中除 GB 2312 的符号外,还有 10 个小写罗马数字和 GB 12345 增补的符号。计符号 717 个。

b. GB 13000.1 扩充非汉字区。即 GBK/5: A840-A9A0。BIG-5 非汉字符号、结构符和“○”排列在此区。计符号 166 个。

3. 用户自定义区(使用者加字区):分为(1)(2)(3)三个小区。

(1) AAA1-AFFE,码位 564 个。

(2) F8A1-FEFE,码位 658 个。

(3) A140-A7A0,码位 672 个。

第(3)区尽管对用户开放,但限制使用,因为不排除未来在此区域增补新字符的可能性。

(三)、字形

GBK 对字形作了如下的规定:

1. 原则上与 GB 13000.1 G列(即源自中国大陆法定标准的汉字)下的字形/笔形保持一致。

2. 在 CJK 汉字认同规则的总框架内,对所有的 GBK 编码汉字实施“无重码正形”(“GB 化”);即在不造成重码的前提下,尽量采用中国新字形。

3. 对于超出 CJK 汉字认同规则的、或认同规则尚未明确规定的汉字,在 GBK 码位上暂安放旧字形。这样,在许多情况下 GBK 收入了同一汉字的新旧两种字形。

4. 非汉字符号的字形,凡 GB 2312 已经包括的,与 GB 2312 保持一致;超出 GB 2312 的部分,与 GB 13000.1 保持一致。

5. 带声调的拼音字母取半型形式。

GB 2312 码是中华人民共和国国家标准汉字信息交换用编码,全称《信息交换用汉字编码字符集 基本集》,标准号为 GB 2312-80(GB 是“国标”二字的汉语拼音缩写),由中华人民共和国国家标准总局发布,1981年5月1日实施。习惯上称国标码、GB 码,或区位码。它是一个简化字汉字的编码,通行于中国大陆地区。新加坡等地也使用这一编码。

GB 2312-80 收录简化汉字及一般符号、序号、数字、拉丁字母、日文假名、希腊字母、俄文字母、汉语拼音符号、汉语注音字母,共 7445 个图形字符。其中汉字以外的图形字符 682 个,汉字 6763 个。

GB 2312-80 规定,“对任意一个图形字符都采用两个字节(Byte)表示。每个字节均采用 GB 1988-80 及 GB 2311-80 中的七位编码表示。两个字节中前面的字节为第一字节,后面的字节为第二字节。”习惯上称第一字节为“高字节”,第二字节为“低字节”。

GB 2312-80 将代码表分为 94 个区(Section),对应第一字节;每个区 94 个位(Position),对应第二字节。两个字节的值,分别为区号值和位号值各加 32(20H)。

GB 2312-80 规定,01~09 区(原规定为 1~9 区,为表示区位码方便起见,今改称 01~09 区)为符号、数字区,16~87 区为汉字区。而 10~15 区、88~94 区是有待于“进一步标准化”的“空白位置”区域。但第 10 区推荐与第 3 区的 94 个图形字符(即 GB 1988-80 中的 94 个图形字符)相同,字形宽度为其宽度的一半。

GB 2312-80 把收录的汉字分成两级。第一级汉字是常用汉字,计 3755 个,置于 16~55 区,按汉语拼音字母/笔形顺序排列;第二级汉字是次常用汉字,计 3008 个,置于 56~87 区,按部首/笔画顺序排列。字音以普通话审音委员会发表的《普通话异读词三次审音总表初稿》(1963年出版)为准,字形以中华人民共和国文化部、中国文字改革委员会公布的《印刷通用汉字字形表》(1964年出版)为准。

linux下经常遇到的编码问题

如果你需要在Linux中 *** 作windows下的文件,那么你可能会经常遇到文件编码转换的问题。Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8。

查看编码的方法

方法一:file filename

方法二:在Vim中可以直接查看文件编码

:set fileencoding

如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在

~/.vimrc 文件中添加以下内容:

set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936

这样,就可以让vim自动识别文件编码(可以自动识别UTF-8或者GBK编码的文件),其实就是依照fileencodings提供的编码列表尝试,如果没有找到合适的编码,就用latin-1(ASCII)编码打开文件编码转换。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7738146.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存