Linux 中文乱码问题

最近做一个小项目,在windows环境完全没问题,但是,在Linux环境,生成文件名,总是中文乱码,折腾了挺长时间。

设置编码的命令  vi  /etc/sysconfig/i18n

设置 LANG="zh_CN.UTF-8"

进入vi命令输入 按i,切换esc,退出并保存 wq! ,退出不保存q!

注意不是UTF-8,而是中文中国的UTF-8,期间,试过了很多编码方式,都不尽如意

还有一种设置编码方式:vi /etc/profile

加上

export LC_ALL="zh_CN.UTF-8"
export LANG="zh_CN.UTF-8"

要执行一下配置文件(. /etc/sysconfig/i18n)或者重启服务器,设置才能生效.下图是设置了之后的效果


en_US.UTF-8、zh_CN.UTF-8叫做字符集,就是说‘A’、‘B’、‘中’、‘国’等对应的整数值,
en_US.UTF-8只包含了ASCII码,zh_CN.UTF-8包含了6000多个汉字?
如果是这样的话,那所谓UTF-8,就是把这些整数,编写成一串字节的方法?

UTF-8 是编码方式,

en_US.UTF-8 和 zh_CN.UTF-8 是语言环境,也就是字符集

en_US.UTF-8 和 zh_CN.UTF-8 包含的字符数量是基本上一样的,大概是七万个汉字,编码都是 UTF-8 编码,字符集是 Unicode,版本是 4.1 吧?zh_CN.GB18030 和 zh_CN.GBK 的字符集都与 Unicode 3 是等价的,记得应该是这样
语言环境的差别就是另一回事了,中国人和外国人表示时间啦,数字啦,习惯都不一样,所以必须区分开。大部分程序根据语言环境变量来选择界面的语言是中文还是英文。

所以一般linux系统的语言环境设置成:export LANG=zh_CN.UTF-8,代表中国人使用的unicode字符集

en_US.UTF-8:你说英语,你在美国,字符集是utf-8
zh_CN.UTF-8:你说中文,你在中国,字符集是utf-8

如果你的LANG环境变量是en_US.UTF-8,那么系统的菜单、程序的工具栏语言、输入法默认语言就都是英文的。

如果你的LANG环境变量是zh_CN.UTF-8,那么系统的菜单、程序的工具栏语言、输入法默认语言就都是中文的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值