Chinaunix首页 | 论坛 | 博客
  • 博客访问: 116120
  • 博文数量: 67
  • 博客积分: 1584
  • 博客等级: 中校
  • 技术积分: 595
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-17 09:58
文章分类

全部博文(67)

文章存档

2012年(1)

2011年(62)

2010年(4)

分类: LINUX

2011-03-12 16:56:16

Locale 是软件在运行时的语言环境, 它包括语言(Language), 地域 (Territory)和字符集(Codeset). 其格式为: 语言[_地域[.字符集]]. 如对中文GBK字符集, locale的格式是:zh_CN.GBK. "C"是系统默认的locale,"POSIX"是"C"的别名。
locale大多用在libc-based的应用程序上.
/usr/lib/locale 包含系统上编译安装的 locales。

Locale 包含了以下分类:
LC_COLLATE, 用于比较和排序. 排序对中文来说也比较重要, 但是现在的 glibc中的locale对中文支持有些问题. 汉字排序的 的方式有许多种, 按照 发音(汉语拼音)或者汉字笔画来排序 是比较容易被接受的.
LC_CTYPE: character types and encoding
LC_MONETORY, 用于货币单位
LC_NUMERIC, 用于数字显示格式. 下面是不同国家的在货币符号 和数字格 式上的不同:
LC_TIME, 用于时间和日期. 时间可以用12小时或者24小时的 格式来计算. 在小时和分钟之间可以用逗点或者冒号隔开. 下面 是一些Locale设置的时 间和日期的格式
LC_MESSAGES: natural language messages 用于国际化信息, 主要是提示信息,错误信息, 状态信息, 标 题, 标签, 按钮和菜单等.
LANG: Specifies the default locale for all unset locale variables 是优先级很低的一个变量,它指定所有与locale有关的变量的默认值.
LC_ALL:Overrides the locale for all LC_ variables and LANG指定所有的LOCALE.覆盖其他的LC_的环境变量.
LANGUAGE:override for LC_MESSAGES, used by GNU gettext only 是设置应用程序的界面语言。 means: LC_MESSAGE没有被用户设置,则LC_MESSAGE的取值由LANGUAGE确定。
LC_ALL LANG LANGUAGE LC_TYPE LC_MESSAGE
/etc/locale.gen:系统支持哪些语言环境 /etc/default/locale:默认的locale设置
运行 dpkg-reconfigure locales 的命令进行配置.


在产生这些地区语言文档后,使用环境变量来设定我们想要使用的locale.例如 可以把这些环境变量写到
~/.bashrc ~/.xinitrc或者~/.xsession中.

export LC_ALL=zh_CN.GB2312
export LANG=zh_CN.GB2312

1.终端中文显示
安装好debian2.4.27-4-686后,在更新源时发现错误提示中英文都是乱码
在网上搜了一下,找到两种方法。
1-------->原因可能是字符集设置不一致
设置前,使用默认locale:
debian:~# vi .bashrc
加入:
export LANG="POSIX"
export LC_CTYPE="POSIX"
export LC_NUMERIC="POSIX"
export LC_TIME="POSIX"
export LC_COLLATE="POSIX"
export LC_MONETARY="POSIX"
export LC_MESSAGES="POSIX"
export LC_PAPER="POSIX"
export LC_NAME="POSIX"
export LC_ADDRESS="POSIX"
export LC_TELEPHONE="POSIX"
export LC_MEASUREMENT="POSIX"
exportLC_IDENTIFICATION="POSIX"
LC_ALL=

修改后,使用zh_CN.GDK中文locale:
debian:~# export LC_ALL=zh_CN.GBK
debian:~# locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.GBK"
LC_NUMERIC="zh_CN.GBK"
LC_TIME="zh_CN.GBK"
LC_COLLATE="zh_CN.GBK"
LC_MONETARY="zh_CN.GBK"
LC_MESSAGES="zh_CN.GBK"
LC_PAPER="zh_CN.GBK"
LC_NAME="zh_CN.GBK"
LC_ADDRESS="zh_CN.GBK"
LC_TELEPHONE="zh_CN.GBK"
LC_MEASUREMENT="zh_CN.GBK"
LC_IDENTIFICATION="zh_CN.GBK"
LC_ALL=zh_CN.GBK
很可惜,还是没有变化
2----------->
安装zhcon
然后执行#zhcon
就可以看到中文字体了
2. firefox等应用程序乱码 一般使用UTF-8或GBK,在更改一下程序的字符集设置就行了。
3. lftp中文字符乱码的解决

修改/etc/lftp.conf,在最后插入:

set ftp:charset "gbk"
set file:charset "utf-8"
4. vim乱码解决:
在/etc/vim/vimrc文件中添加如下代码:

let &termencoding=&encoding
set fileencodings=utf-8,gbk,ucs-bom,cp936
5.挂载windows分区乱码
如果是mount的话,加上-o iocharset=cp936/utf-8/gb2312
mount -t vfat -o codepage=936,iocharset=utf8,/dev/hda5 /mnt/WinD
如果是fstab自动加载,在options 下面加上iocharset=cp936/utf-8/gb2312 都可以。
6.samba共享乱码
/etc/samba/smb.conf的[global]段下加入
display charset = UTF-8
unix charset = UTF-8
dos charset = cp936
一般能解决问题,(编码根据自己的情况调整)。
7..mp3乱码
这个问题的根本就在于IDv2.3和IDv2.4的问题,一个是GBK的编码,一个是UTF-8的编码。
Linux的播放软件一般都只支持IDv2.4。直接把所有MP3都转化为IDv2.4就能解决了。
sudo apt-get install python-mutagen
cd 你的mp3根目录
sudo find . -iname "*.mp3" -execdir mid3iconv -e GBK {} \;

8、gftp乱码

vi ~/.gftp/gftprc

找到 "remote_charsets="这一行,在"="加上cp936,gb18030,gbk,gb2312,utf-8等编码方式,保存后退出。
阅读(1185) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~