linux系统语言环境为GB18030,接收utf-8格式的报文为乱码

linux系统语言环境为GB18030,接收utf-8格式的报文为乱码,第1张

作为一个合格的程序员,在程序内部进行字符串传输和处理时,都必须使用 utf8 编码,只有在进行对外输出存储和显示的时候,才转换成 locale 编码。从外部读取字符串,也要先转换成 utf8 后在进行程序内处理。另外应用程序内部不应该嵌入编码字符串,应该只存在英文字符串,所有 CJK 字符串,都应该从外部专门读取,读取后或者生成外部字符串数据文件时,必须确定编码。

Windows 其实也是如此,不过 Windows 的输入输出是自动进行转换的,内部处理编码是 UCS 的某个吧?

linux下文件编码格式转换方法(gb18030/utf-8) 在 Linux 做开发或者系统管理遇到乱码是经常的事情,主要windows下中文的默认编码是bg2312,而 linux下是utf-8。很多时候 涉及到和windows平台系统的通信免不了编码的转化,可能大部分人都用iconv库函数(包含在glib中)和iconv命令来执行编码转换,即: iconv -f gb18030 -t utf-8 file1.txt -o file2.txt 说实话这个命令不好使,一方面容易重复转换,另一方面不支持通配符,无法成批转 换,文件少了还好说,要是一大堆文件岂不是要累死? 今天我要推荐的是另一个 Shell 下编码转换工具enca。用它不仅可以转换编码,还可以查看文件的原始编码,而且还支持成批转换。使用上也比iconv方便一些。安装enca很简单,一般用源安装就行了,enca用法如下: enca -L 当前语言 文件名 enca -L zh_CN file //检查文件的编码 enca -L 当前语言 -x 目标编码 文件名 enca -L zh_CN -x UTF-8 file //将文件编码转换为”UTF-8″编码 enca -L zh_CN -x UTF-8 <file1 >file2 //如果不想覆盖原文件可以这样 除了有检查文件编码的功能以外,”enca”还有一个好处就是如果文件本来就是你要转换的那种编码,它不会报错,还是会print出结果来, 而”iconv”则会报错。这对于脚本编写是比较方便的事情。

出现这种情况的原因为两种 *** 作系统的中文压缩方式不同,在windows环境中中文压缩一般为gbk,而在linux环境中为utf8,这就导致了在windows下能正常显示

txt文件在linux环境下打开呈现了乱码状态。

解决方法:在linux用iconv命令,输入命令如下

iconv -f gbk -t utf8 file.pdf >file.pdf.utf8

此时会重生一file.utf8文件,打开之后就能正常显示中文

linux系统下修改语言配置方法有:

法一:修改/etc/profile文件,增加export LANG=zh_CN.GB18030

法二:修改/etc/sysconfig/i18n文件,将

#LANG="en_US.UTF-8"

#SUPPORTED="en_US.UTF-8:en_US:en"

#SYSFONT="latarcyrheb-sun16"

改为

LANG="zh_CN.UTF-8"

SUPPORTED="zh_CN:zh:en_US.UTF-8:en_US:en:zh_CN.GB18030"

SYSFONT="latarcyrheb-sun16"

/etc/profile: 为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.

/etc/sysconfig/i18n 这里存放的是系统的区域语言设置

LANG 表明你当前系统的语言环境变量设置 ,这里是 zh_CN.GB18030

SUPPORTED 表明系统预置了那些语言支持 ,不在项目中的语言不能正常显示

SYSFONT 定义控制台终端字体,你文本登录的时候显示的字体是 latarcyrheb-sun16

I18N 是 internationalization 的缩写形式,意即在 i 和 n 之间有 18 个字母,本意是指软件的“国际化”.I18N支持多种语言,不过同一时间只能是英文和一种选定的语言,例如英文+中文、英文+德文、英文+韩文等等;

如果在SCRT上 *** 作时中文乱码,可依次点击options--session options--appearance,选择character encoding为UTF-8


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

原文地址:https://54852.com/yw/8466454.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存