在Linux
中通过locale
来设置程序运行的不同语言环境,locale
由ANSI C
提供支持。locale
的命名规则为<
语言>_<
地区>.<
字符集编码>
,如zh_CN.UTF-8
,zh
代表中文,CN
代表大陆地区,UTF-8
表示字符集。在locale
环境中,有一组变量,代表国际化环境中的不同设置:
1.
LC_COLLATE
定义该环境的排序和比较规则
2.
LC_CTYPE
用于字符分类和字符串处理,控制所有字符的处理方式,包括字符编码,字符是单字节还是多字节,如何打印等。是最重要的一个环境变量。
3.
LC_MONETARY
货币格式
4.
LC_NUMERIC
非货币的数字显示格式
5.
LC_TIME
时间和日期格式
6.
LC_MESSAGES
提示信息的语言。另外还有一个LANGUAGE
参数,它与LC_MESSAGES
相似,但如果该参数一旦设置,则LC_MESSAGES
参数就会失效。LANGUAGE
参数可同时设置多种语言信息,如LANGUANE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
。
7.
LANG
LC_*
的默认值,是最低级别的设置,如果LC_*
没有设置,则使用该值。类似于
LC_ALL
。
8.
LC_ALL
它是一个宏,如果该值设置了,则该值会覆盖所有LC_*
的设置值。注意,LANG
的值不受该宏影响。
一个例子:
设置前,使用默认locale
:
debian:~# locale
LANG="POSIX"
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_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
"C"
是系统默认的locale
,"POSIX"
是"C"
的别名。所以当我们新安装完一个系统时,默认的locale
就是C
或POSIX
。
在Debian
中安装locales
的方法如下:
·
通过apt-get install locales
命令安装locales
包
·
安装完成locales
包后,系统会自动进行locale
配置,你只要选择所需的locale
,可以多选。最后指定一个系统默认的locale
。这样系统就会帮你自动生成相应的locale
和配置好系统的locale
。
·
增加新的locale
也很简单,用dpkp-reconfigure locales
重新配置locale
即可。
·
我们也可手动增加locale
,只要把新的locale
增加到/etc/locale.gen
文件中,再运行locale-gen
命令即可生成新的locale
。再通过设置
上面介绍的LC_*
变量就可设置系统的locale
了。下是一个locale.gen
文件的样例。
·
# This file lists locales that you wish to have built. You can find a list
·
# of valid supported locales at /usr/share/i18n/SUPPORTED. Other
·
# combinations are possible, but may not be well tested. If you change
·
# this file, you need to rerun locale-gen.
·
#
·
zh_CN.GBK GBK
·
zh_CN.UTF-8 UTF-8
来源:
http://www.linuxsky.org/doc/newbie/200707/84.html
分享到:
相关推荐
Linux 中 locale 自用总结 locale 是根据计算机用户所使用...locale 和字符集是 Linux 中的两个重要概念,它们都是软件运行时语言环境的组成部分。理解 locale 和字符集对于 Linux 的软件开发和系统管理是非常重要的。
"locale"是Linux中用于设定区域和语言环境的工具,它定义了系统的默认字符集、日期格式、数字格式等。当系统需要显示中文时,正确的locale设置就显得至关重要。在Ubuntu上设置中文locale,可以解决文件名、终端输出...
除了临时设置环境变量外,还可以通过编辑`/etc/default/locale`文件来永久性地更改字符集设置。打开该文件并进行相应的修改,例如: ```bash sudo nano /etc/default/locale ``` 将文件中的`LANG`等环境变量设置为...
在Linux系统中,locale(本地化环境)设置决定了系统如何处理特定语言和国家/地区的信息,包括日期格式、货币单位、排序规则以及字符集等。 **2. 设置locale:** 要设置Linux系统的locale,可以通过编辑`/etc/...
总之,字符编码和字符集是理解计算机处理文本的基础,而正确设置Linux系统中的字符集是确保中文等多语言环境正常工作的重要环节。在CentOS7中,通过安装必要的中文支持软件包,修改配置文件并设置`LANG`环境变量,...
在Linux操作系统中,`locale-archive`和`locale-archive.tmpl`是两个非常关键的文件,它们与系统的国际化(Internationalization,简称i18n)和本地化(Localization,简称l10n)设置密切相关。`locale`是系统用来...
linux 中文语言包,解决操作系统中文乱码的问题
在Linux终端中,中文乱码问题通常与字符集和字体设置有关。文件系统编码设置、环境变量和SSH连接中的编码设置是解决终端中文乱码问题的几个关键点。 文件系统编码的设置通常与locale设置保持一致,正确的locale设置...
遇到乱码或无法正常显示的字符时,通常是由于locale设置不当或缺少相应字符集的字体。此时,需要检查locale设置,确保与网页或其他文件的编码匹配,并安装缺失的字体。 6. locale与多语言支持 为了支持多种语言,...
配置Linux的字符集通常通过修改`/etc/locale.conf`文件来实现,或者使用`localectl`命令。例如,要设置系统默认locale为UTF-8,可以在`/etc/locale.conf`中添加以下行: ``` LANG="en_US.UTF-8" ``` 然后重启系统或...
通常在SSH客户端的“窗口”或“外观”设置中,选择“字体”并确保选择支持中文的字体,同时在“数据”部分设置“字符集”为UTF-8。 6. **针对特定情况:GB18030编码** 如提述文件部分内容,如果你遇到的乱码问题与...
在Informix中,可以通过设置环境变量来指定使用的字符集。常见的环境变量包括`SERVER_LOCALE`、`CLIENT_LOCALE`、`DB_LOCALE`和`LANG`。 - `SERVER_LOCALE`: 指定服务器端的字符集。 - `CLIENT_LOCALE`: 指定客户端...
在使用Linux系统的过程中,尤其是对于非英语环境下的用户来说,字符界面(CLI)出现乱码的问题时有发生。例如,在安装Red Hat 9.0时选择了中文作为默认语言,可能会遇到字符界面显示乱码的情况。本文将详细介绍两种...
综上所述,解决Linux中的中文乱码问题涉及多方面的配置,包括安装必要的字体包、设置locale、调整环境变量以及确保各个应用程序的兼容性。了解并掌握这些知识点,将有助于在Linux环境中顺畅地处理中文字符。
locale 机制允许用户设置操作系统的语言环境,包括语言、字符集、日期格式、时间格式等。 中文字符的处理和显示是指操作系统能够正确地处理和显示中文字符,包括 GBK、UTF-8 等编码方式。Linux 系统中,中文字符的...
这通常是由于字符编码设置不正确或者缺少支持中文字符集的字体导致的。要解决这个问题,我们需要理解字符编码的基本原理,并掌握一些关键的配置步骤。 1. **字符编码的理解**: - **ASCII编码**:早期的字符编码,...
综上所述,解决Linux下Oracle 11g R2安装时中文显示乱码的问题,需要从locale设置、数据库字符集配置、字体库支持以及图形界面编码设置四个方面入手。通过以上步骤,应该能够成功解决中文显示问题,使得Oracle数据库...
在Linux操作系统中,由于其最初的设计主要面向英文用户,因此默认情况下可能会缺乏对中文字符集的支持。"Linux中文包"正是为了解决这个问题而提供的,它包含了一系列的工具和资源,使得Linux系统能够识别、显示和...
本文将深入探讨C/C++中GBK/UTF-8以及ANSI/UTF-8字符集的转换,以及如何通过纯C代码实现这些转换,确保程序在Windows和Linux等不同操作系统上的一致性。 首先,我们需要理解字符集的基础知识。ASCII是最基础的字符集...
然而,实现这种方案需要解决的问题包括如何高效地在内核中处理各种字符集,如何动态调整控制台配置以适应不同的Locale,以及如何确保与现有系统的兼容性。 总的来说,基于Locale的控制台国际化技术是Linux内核发展...