如何解决 linux 的乱码问题

如何解决 linux 的乱码问题,第1张

出现这种情况的原因为两种 *** 作系统的中文压缩方式不同,在windows环境中中文压缩一般为gbk,而在linux环境中为utf8,这就导致了在windows下能正常显示
txt文件在linux环境下打开呈现了乱码状态。
解决方法:在linux用iconv命令,输入命令如下
iconv -f gbk -t utf8 filepdf > filepdfutf8
此时会重生一fileutf8文件,打开之后就能正常显示中文
linux系统下修改语言配置方法有:
法一:修改/etc/profile文件,增加export LANG=zh_CNGB18030
法二:修改/etc/sysconfig/i18n文件,将
#LANG="en_USUTF-8"
#SUPPORTED="en_USUTF-8:en_US:en"
#SYSFONT="latarcyrheb-sun16"
改为
LANG="zh_CNUTF-8"
SUPPORTED="zh_CN:zh:en_USUTF-8:en_US:en:zh_CNGB18030"
SYSFONT="latarcyrheb-sun16"
/etc/profile: 为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行
/etc/sysconfig/i18n 这里存放的是系统的区域语言设置
LANG 表明你当前系统的语言环境变量设置 ,这里是 zh_CNGB18030
SUPPORTED 表明系统预置了那些语言支持 ,不在项目中的语言不能正常显示
SYSFONT 定义控制台终端字体,你文本登录的时候显示的字体是 latarcyrheb-sun16
I18N 是 internationalization 的缩写形式,意即在 i 和 n 之间有 18 个字母,本意是指软件的“国际化”I18N支持多种语言,不过同一时间只能是英文和一种选定的语言,例如英文+中文、英文+德文、英文+韩文等等;
如果在SCRT上 *** 作时中文乱码,可依次点击options--session options--appearance,选择character encoding为UTF-8

GBK 是又一个汉字编码标准,全称《汉字内码扩展规范》(GBK),英文名称 Chinese Internal Code Specification ,中华人民共和国全国信息技术标准化技术委员会 1995 年 12 月 1 日制订,国家技术监督局标准化司、电子工业部科技与质量监督司 1995 年 12 月 15 日联合以技监标函 [1995] 229 号文件的形式,将它确定为技术规范指导性文件,发布和实施。这一版的 GBK 规范为 10 版。GB 即“国标”,K 是“扩展”的汉语拼音第一个字母。
GBK 向下与 GB 2312 编码兼容,向上支持 ISO 106461 国际标准,是前者向后者过渡过程中的一个承上启下的标准。
ISO 10646 是国际标准化组织 ISO 公布的一个编码标准,即 Universal Multilpe-Octet Coded Character Set(简称 UCS),大陆译为《通用多八位编码字符集》,台湾译为《广用多八位编码字符集》,它与 Unicode 组织的 Unicode 编码完全兼容。ISO 106461 是该标准的第一部分《体系结构与基本多文种平面》。我国 1993 年以 GB 130001 国家标准的形式予以认可(即 GB 130001 等同于 ISO 106461)。
ISO 10646 是一个包括世界上各种语言的书面形式以及附加符号的编码体系。其中的汉字部分称为“CJK 统一汉字”(C 指中国,J 指日本,K 指朝鲜)。而其中的中国部分,包括了源自中国大陆的 GB 2312、GB 12345、《现代汉语通用字表》等法定标准的汉字和符号,以及源自台湾的 CNS 11643 标准中第 1、2 字面(基本等同于 BIG-5 编码)、第 14 字面的汉字和符号。
(一)、字汇
GBK 规范收录了 ISO 106461 中的全部 CJK 汉字和符号,并有所补充。具体包括:
1 GB 2312 中的全部汉字、非汉字符号。
2 GB 130001 中的其它 CJK 汉字。以上合计 20902 个 GB 化汉字。
3 《简化字总表》中未收入 GB 130001 的 52 个汉字。
4 《康熙字典》及《辞海》中未收入 GB 130001 的 28 个部首及重要构件。
5 13 个汉字结构符。
6 BIG-5 中未被 GB 2312 收入、但存在于 GB 130001 中的 139 个图形符号。
7 GB 12345 增补的 6 个拼音符号。
8 汉字“○”。
9 GB 12345 增补的 19 个竖排标点符号(GB 12345 较 GB 2312 增补竖排标点符号 29 个,其中 10 个未被 GB 130001 收入,故 GBK 亦不收)。
10 从 GB 130001 的 CJK 兼容区挑选出的 21 个汉字。
11 GB 130001 收入的 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 130001 扩充汉字区。包括:
(1) GBK/3: 8140-A0FE。收录 GB 130001 中的 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 130001 扩充非汉字区。即 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 130001 G列(即源自中国大陆法定标准的汉字)下的字形/笔形保持一致。
2 在 CJK 汉字认同规则的总框架内,对所有的 GBK 编码汉字实施“无重码正形”(“GB 化”);即在不造成重码的前提下,尽量采用中国新字形。
3 对于超出 CJK 汉字认同规则的、或认同规则尚未明确规定的汉字,在 GBK 码位上暂安放旧字形。这样,在许多情况下 GBK 收入了同一汉字的新旧两种字形。
4 非汉字符号的字形,凡 GB 2312 已经包括的,与 GB 2312 保持一致;超出 GB 2312 的部分,与 GB 130001 保持一致。
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年出版)为准。

我试了说的情况,没有报错啊,在windows下使用文本编辑器输入喆,字符编码格式为GBK,并且跟其它汉字混合在一起,传到linux上由于我的环境是utf-8的,所以是乱码,然后运行
iconv -f GBK -t UTF-8 源文件 -o目标文件
打开目标文件,显示一切正常了
备注:我的linux环境是suse linux enterprise server 11 sp3(x86_64)


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

原文地址: http://www.outofmemory.cn/zz/13494105.html

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

发表评论

登录后才能评论

评论列表(0条)

保存