免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 方兆国
打印 上一主题 下一主题

替snow888申请个版主 [复制链接]

论坛徽章:
24
金牛座
日期:2013-10-18 21:35:56综合交流区版块每日发帖之星
日期:2015-08-15 06:20:00综合交流区版块每日发帖之星
日期:2015-09-30 06:20:00综合交流区版块每日发帖之星
日期:2015-10-16 06:20:03每日论坛发贴之星
日期:2015-10-16 06:20:03综合交流区版块每日发帖之星
日期:2015-10-24 06:20:00IT运维版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之天津
日期:2016-02-25 16:28:04综合交流区版块每日发帖之星
日期:2016-06-12 06:20:00每日论坛发贴之星
日期:2016-06-12 06:20:00综合交流区版块每日发帖之星
日期:2016-06-13 06:20:00综合交流区版块每日发帖之星
日期:2015-06-22 22:20:00
21 [报告]
发表于 2012-06-10 23:57 |只看该作者
回复 20# snow888
你还是没理解我的意思。
分别设
LANG=zh_CN
LANG=zh_CN.GB2312
LANG=zh_CN.GBK
LANG=zh_CN.GB18030
LANG=zh_CN.UTF-8
在这些不同的设置下,看看同一个date命令有什么差别。
LANG=zh_CN与哪一个是相同的?

论坛徽章:
0
22 [报告]
发表于 2012-06-11 00:05 |只看该作者
反对村长在这里水贴。
站务排斥一切技术讨论,一切技术讨论都是灌水。(在我眼里,无论哪里的技术讨论,都是灌水)
呼吁版主把村长给毙了。
snow888的技术也不错,支持担任版主。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
23 [报告]
发表于 2012-06-11 00:07 |只看该作者
回复 21# 一介村夫


    如果你不更改你的 ssh 客户端的字符设置,那么客户端的字符集一般而言就是 zh_CN.GB18030 . 因此你的 linux 系统里面也应该设定字符集为 zh_CN.GB18030

   我觉得你还是仔细看一下我给你的回复。


如果你不想改变你的 linux 字符集,那么你的 ssh 的客户端就应该设定字符集为 zh_CN.UTF-8 , 因为一般默认而言,如果不做特殊的设置,linux 的默认字符集就是 zh_CN.UTF-8

论坛徽章:
24
金牛座
日期:2013-10-18 21:35:56综合交流区版块每日发帖之星
日期:2015-08-15 06:20:00综合交流区版块每日发帖之星
日期:2015-09-30 06:20:00综合交流区版块每日发帖之星
日期:2015-10-16 06:20:03每日论坛发贴之星
日期:2015-10-16 06:20:03综合交流区版块每日发帖之星
日期:2015-10-24 06:20:00IT运维版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之天津
日期:2016-02-25 16:28:04综合交流区版块每日发帖之星
日期:2016-06-12 06:20:00每日论坛发贴之星
日期:2016-06-12 06:20:00综合交流区版块每日发帖之星
日期:2016-06-13 06:20:00综合交流区版块每日发帖之星
日期:2015-06-22 22:20:00
24 [报告]
发表于 2012-06-11 00:16 |只看该作者
做完了上面的测试,就知道
LANG=zh_CN
LANG=zh_CN.GB2312
LANG=zh_CN.GBK
LANG=zh_CN.GB18030
这些都是等价的,也就是说,缺省的zh_CN编码是GB18030!
而X缺省的zh_CN编码却是UTF-8!
这种不一致性所带来的一个问题是:在对程序进行国际化(i18n)时,为了在传统终端和X环境下都能正确地显示中文,就要做GB18030和UTF-8两个版本!
问题的关键就是,为什么Linux和X选择了不同的标准?

论坛徽章:
24
金牛座
日期:2013-10-18 21:35:56综合交流区版块每日发帖之星
日期:2015-08-15 06:20:00综合交流区版块每日发帖之星
日期:2015-09-30 06:20:00综合交流区版块每日发帖之星
日期:2015-10-16 06:20:03每日论坛发贴之星
日期:2015-10-16 06:20:03综合交流区版块每日发帖之星
日期:2015-10-24 06:20:00IT运维版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之天津
日期:2016-02-25 16:28:04综合交流区版块每日发帖之星
日期:2016-06-12 06:20:00每日论坛发贴之星
日期:2016-06-12 06:20:00综合交流区版块每日发帖之星
日期:2016-06-13 06:20:00综合交流区版块每日发帖之星
日期:2015-06-22 22:20:00
25 [报告]
发表于 2012-06-11 00:18 |只看该作者
本帖最后由 一介村夫 于 2012-06-11 00:18 编辑
snow888 发表于 2012-06-11 00:07
回复 21# 一介村夫

从你的回帖就看出来,你不仅没有理解我的问题所在,而且根本就没有做我提出的测试,所以说你也就根本没理解我的问题是什么。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
26 [报告]
发表于 2012-06-11 00:37 |只看该作者
回复 25# 一介村夫


    晕,我不知道你所谓的 linux 和 x 是两个字符集是啥子意思 ?

你直接在 linux 系统中,打开终端看看,直接用 echo $LANG 看看,字符集是不是 zh_CN.UTF-8 , 你再直接在这个终端里面执行 date 看看,是否能出现乱码?(至少我的没有出乱码,我的 字符集都是 zh_CN.UTF-8 )。

那么问题来了,为什么在 linux 下面的终端的字符集会是 zh_CN.UTF-8 ,而且不会出现乱码,但是你通过 windows 这边的 ssh 客户端登陆上去,就会出现乱码?

我们再来测试一下,还是以我使用的 putty 为例,直接登陆上去以后,你输入 echo $LANG ,我们看到字符集是 zh_CN.UTF-8 ,这个时候输入 date ,显示出现乱码了。

原因 ?

其实原因我在前面已经说了,这是因为我们的 windows 的默认字符集是 gb18030 或者是 gbk 或者是 cp936 的,又或者是 gb2312 的,这个时候,我们的客户端按照 gbk 的编码方式进行转换输出,但 linux 系统返回的字符集却是 utf-8 的 ,这个时候,它当然无法解析字符集,这也就会出现乱码 。

这根本就不是 linux 的问题,也不是 windows 的问题,而是 linux 和 windows 各自采用了不同的默认字符集的问题。当然,如果你能将 windows 默认字符集改成 zh_CN.UTF-8 的,那么你也就不需要设置了。

从你的描述来看,你如果是想做一个类似 ssh 的客户端登录程序,其实你只需要做一个 gb18030 的,在你的 linux 系统中设置默认的字符集为 gb18030 就 OK 了。输出的字符集肯定不是乱码。

如果你不希望对一个一个的用户更改,你可以修改 /etc/bashrc 文件(针对 bash 而言),直接在其中加入 export LANG=zh_CN.GB18030 , 以后你的所有的用户的默认字符集都是 gb18030 的了 。 也不需要你登录后再手动设置了。


当然,最好的建议是在你的程序中弄一个设置字符集的地方,可以进行字符集的设置,并且这个设置的字符集可以保存,就像 putty 一样,可以针对不同的 linux 主机连接,设置不同的字符集并保存,下次再连接的时候,也就不需要再设置了。




论坛徽章:
24
金牛座
日期:2013-10-18 21:35:56综合交流区版块每日发帖之星
日期:2015-08-15 06:20:00综合交流区版块每日发帖之星
日期:2015-09-30 06:20:00综合交流区版块每日发帖之星
日期:2015-10-16 06:20:03每日论坛发贴之星
日期:2015-10-16 06:20:03综合交流区版块每日发帖之星
日期:2015-10-24 06:20:00IT运维版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之天津
日期:2016-02-25 16:28:04综合交流区版块每日发帖之星
日期:2016-06-12 06:20:00每日论坛发贴之星
日期:2016-06-12 06:20:00综合交流区版块每日发帖之星
日期:2016-06-13 06:20:00综合交流区版块每日发帖之星
日期:2015-06-22 22:20:00
27 [报告]
发表于 2012-06-11 00:39 |只看该作者
snow888 发表于 2012-06-11 00:37
回复 25# 一介村夫

你认为一个从1996年开始玩Linux的,会不知道或不懂得你说的这些吗?

论坛徽章:
24
金牛座
日期:2013-10-18 21:35:56综合交流区版块每日发帖之星
日期:2015-08-15 06:20:00综合交流区版块每日发帖之星
日期:2015-09-30 06:20:00综合交流区版块每日发帖之星
日期:2015-10-16 06:20:03每日论坛发贴之星
日期:2015-10-16 06:20:03综合交流区版块每日发帖之星
日期:2015-10-24 06:20:00IT运维版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之天津
日期:2016-02-25 16:28:04综合交流区版块每日发帖之星
日期:2016-06-12 06:20:00每日论坛发贴之星
日期:2016-06-12 06:20:00综合交流区版块每日发帖之星
日期:2016-06-13 06:20:00综合交流区版块每日发帖之星
日期:2015-06-22 22:20:00
28 [报告]
发表于 2012-06-11 00:42 |只看该作者
本帖最后由 一介村夫 于 2012-06-11 00:43 编辑

再啰嗦一遍吧:
为什么Linux和X对于zh_CN选择了不同的缺省编码?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
29 [报告]
发表于 2012-06-11 00:56 |只看该作者
回复 27# 一介村夫


    原来你从 96 年才开始玩 linux 啊,难怪。

我实在是不知道你所说的 linux 和 x 用了不同的字符集是什么意思?

你这个所谓的 x 指的是什么?

我只知道 linux 对于 字符集的支持,比 windows要丰富,如果你在系统安装的时候,安装了中文字符集 , 那么在linux 中,这个默认的字符集都是 zh_CN.UTF-8 , 在同一个环境下, 这个 linux 系统的字符集都是统一的。

当然,我们通过 linux 图形界面的 xterm 登录到 windows 终端下,我们突然发现,这 windows 系统中好好的中文文件名,咋都出现了乱码?

哦,原来是 windows 中的字符集不统一,这windows 怎么这样啊?连个字符集都不能统一一下啊?

晕,其实不是 windows 的字符集不统一,是我们的 linux 的字符集与 windows 的字符集不统一罢了。

论坛徽章:
19
CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-09-18 15:15:15CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:31CU大牛徽章
日期:2013-05-20 10:46:25CU大牛徽章
日期:2013-05-20 10:46:18CU大牛徽章
日期:2013-04-17 11:19:51CU大牛徽章
日期:2013-04-17 11:19:42CU大牛徽章
日期:2013-04-17 11:19:37CU大牛徽章
日期:2013-04-17 11:19:32CU大牛徽章
日期:2013-04-17 11:19:28
30 [报告]
发表于 2012-06-11 00:57 |只看该作者
回复 24# 一介村夫


    [code]bash.exe"-3.1$ echo $local

bash.exe"-3.1$ echo $lang

bash.exe"-3.1$ ssh root@192.168.56.101
root@192.168.56.101's password:
Last login: Sun Jun 10 15:47:01 2012 from 192.168.56.1
[root@fangzhaoguo ~]# echo $local

[root@fangzhaoguo ~]# echo $lang

[root@fangzhaoguo ~]# echo $LOCAL

[root@fangzhaoguo ~]# echo $LANG
zh_CN.UTF-8
[root@fangzhaoguo ~]# date
2012骞?06鏈?11鏃?鏄熸湡涓
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP