免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5734 | 回复: 11
打印 上一主题 下一主题

字符集和LANG [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-04 18:06 |只看该作者 |倒序浏览
8可用积分
各位大虾,你们好.小弟请教关于乱码的问题

在unix环境下出现了乱码.请问乱码出现的原因是什么呢?

怎样设置环境变量LANG才不会出现乱码.我看到有些取值zh_CN,GB2312,UTF-8等.

这些取值的意义是什么,适用于什么环境?

还有LC_CTYPE,LC_ALL这些环境变量的意义是什么?怎么取值?

这些变量的取值和操作系统版本有关吗?

谢谢各位.

论坛徽章:
0
2 [报告]
发表于 2009-05-04 20:53 |只看该作者
好久没人理你  ,俺给一个不太准确的解释。

首先,各环境变量的意思:
LANG           Defines all locale settings at once, while allowing further individual customization via the LC_* settings below.
LC_COLLATE         Define alphabetical ordering of strings. This affects e.g. output of sorted directory listing.
LC_CTYPE         Define the character handling properties for the system. This determines which characters are seen as part of alphabet, numeric and so on. This also determines the character set used, if applicable.
LC_MESSAGES         Programs' localizations for applications that use message based localization scheme (majority of Gnu programs, see next chapters for closer information which do, and how to get the programs, that don't, to work).
LC_MONETARY         Defines currency units and formatting of currency type numeric values.
LC_NUMERIC         Defines formatting of numeric values which aren't monetary. Affects things such as thousand separator and decimal separator.
LC_TIME         Defines formatting of dates and times.
LC_PAPER         Defines default paper size.
LC_ALL         A special variable for overriding all other settings.
以上参考自http://www.gentoo.org/doc/en/guide-localization.xml

这些环境变量的定义应当是libc里定义的,(不知道是不是POSIX里边定义的),但估计你换一个libc,这些环境变量会多少有些不同

论坛徽章:
0
3 [报告]
发表于 2009-05-05 00:11 |只看该作者
字符集,编码,字体,输入法,这些概念搞清楚就好了。

[ 本帖最后由 ziggler 于 2009-5-5 00:13 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2009-05-05 09:00 |只看该作者
楼上能将这些概念大致讲解一下吗?谢谢.

论坛徽章:
0
5 [报告]
发表于 2009-05-05 12:37 |只看该作者

回复 #4 chen_hy 的帖子

字符集,或称字集,是指文字的集合;将固定数目的文字编序,以方便作通讯、教育、资讯处理等用途。

字符集通常有两种,一是专为电脑资讯处理而设,如:ASCII、Unicode、GB 2312、大五码(Big5)、CNS 11643等。一是作其他用途的,如教育用的生字表、通讯用的电报码等。

字符集和编码(Encoding)不同。字符集只是文字的集合,不一定适合作网络传送、处理,有时须经编码(Encode),将字符对应至所属的特定二元表示法后,才能应用。如CNS 11643和GB 2312可以使用ISO/IEC 2022、EUC等标准编码。Unicode可依不同需要以UTF-8、UTF-16、UTF-32等方法编码。有些字符集如Big5通常不须额外编码即可使用,故Big5既是字符集又是编码。

论坛徽章:
0
6 [报告]
发表于 2009-05-06 09:21 |只看该作者
各位大虾,一般情况下怎么设置这些环境变量才不会产生乱码,有些什么规定吗?我的系统是aix的.谢谢.

论坛徽章:
0
7 [报告]
发表于 2009-05-06 10:42 |只看该作者
原帖由 chen_hy 于 2009-5-6 09:21 发表
各位大虾,一般情况下怎么设置这些环境变量才不会产生乱码,有些什么规定吗?我的系统是aix的.谢谢.


设置2个地方就行了.

1. LANG=编码
2. 登陆终端的编码=编码

论坛徽章:
0
8 [报告]
发表于 2009-05-06 13:20 |只看该作者
楼主,我想你最好上一下维基看看Unicode

论坛徽章:
0
9 [报告]
发表于 2009-05-06 15:28 |只看该作者

回复 #7 spiritX 的帖子

这两种编码的取值取决于什么?是不是要一致?谢谢.

论坛徽章:
0
10 [报告]
发表于 2009-05-06 15:30 |只看该作者
好的.我会看的.谢谢.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP