`

Linux中通过locale来设置字符集

 
阅读更多

在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自用总结

    Linux 中 locale 自用总结 locale 是根据计算机用户所使用...locale 和字符集是 Linux 中的两个重要概念,它们都是软件运行时语言环境的组成部分。理解 locale 和字符集对于 Linux 的软件开发和系统管理是非常重要的。

    linux中文编码locale

    "locale"是Linux中用于设定区域和语言环境的工具,它定义了系统的默认字符集、日期格式、数字格式等。当系统需要显示中文时,正确的locale设置就显得至关重要。在Ubuntu上设置中文locale,可以解决文件名、终端输出...

    Linux之字符集设定

    除了临时设置环境变量外,还可以通过编辑`/etc/default/locale`文件来永久性地更改字符集设置。打开该文件并进行相应的修改,例如: ```bash sudo nano /etc/default/locale ``` 将文件中的`LANG`等环境变量设置为...

    linux字符集介绍写的比较详细

    在Linux系统中,locale(本地化环境)设置决定了系统如何处理特定语言和国家/地区的信息,包括日期格式、货币单位、排序规则以及字符集等。 **2. 设置locale:** 要设置Linux系统的locale,可以通过编辑`/etc/...

    CentOS7设置中文字符集1

    总之,字符编码和字符集是理解计算机处理文本的基础,而正确设置Linux系统中的字符集是确保中文等多语言环境正常工作的重要环节。在CentOS7中,通过安装必要的中文支持软件包,修改配置文件并设置`LANG`环境变量,...

    locale-archive 和 locale-archive.tmpl

    在Linux操作系统中,`locale-archive`和`locale-archive.tmpl`是两个非常关键的文件,它们与系统的国际化(Internationalization,简称i18n)和本地化(Localization,简称l10n)设置密切相关。`locale`是系统用来...

    Linux 中文语言包

    linux 中文语言包,解决操作系统中文乱码的问题

    Linux中文乱码问题.pdf

    在Linux终端中,中文乱码问题通常与字符集和字体设置有关。文件系统编码设置、环境变量和SSH连接中的编码设置是解决终端中文乱码问题的几个关键点。 文件系统编码的设置通常与locale设置保持一致,正确的locale设置...

    Locale详解

    遇到乱码或无法正常显示的字符时,通常是由于locale设置不当或缺少相应字符集的字体。此时,需要检查locale设置,确保与网页或其他文件的编码匹配,并安装缺失的字体。 6. locale与多语言支持 为了支持多种语言,...

    linux 编码文件

    配置Linux的字符集通常通过修改`/etc/locale.conf`文件来实现,或者使用`localectl`命令。例如,要设置系统默认locale为UTF-8,可以在`/etc/locale.conf`中添加以下行: ``` LANG="en_US.UTF-8" ``` 然后重启系统或...

    linux解决中文乱码问题

    通常在SSH客户端的“窗口”或“外观”设置中,选择“字体”并确保选择支持中文的字体,同时在“数据”部分设置“字符集”为UTF-8。 6. **针对特定情况:GB18030编码** 如提述文件部分内容,如果你遇到的乱码问题与...

    informix字符集转换

    在Informix中,可以通过设置环境变量来指定使用的字符集。常见的环境变量包括`SERVER_LOCALE`、`CLIENT_LOCALE`、`DB_LOCALE`和`LANG`。 - `SERVER_LOCALE`: 指定服务器端的字符集。 - `CLIENT_LOCALE`: 指定客户端...

    linux 字符界面乱码解决方案

    在使用Linux系统的过程中,尤其是对于非英语环境下的用户来说,字符界面(CLI)出现乱码的问题时有发生。例如,在安装Red Hat 9.0时选择了中文作为默认语言,可能会遇到字符界面显示乱码的情况。本文将详细介绍两种...

    Linux中文乱码之中文支持rpms

    综上所述,解决Linux中的中文乱码问题涉及多方面的配置,包括安装必要的字体包、设置locale、调整环境变量以及确保各个应用程序的兼容性。了解并掌握这些知识点,将有助于在Linux环境中顺畅地处理中文字符。

    Linux中文本地化.pdf

    locale 机制允许用户设置操作系统的语言环境,包括语言、字符集、日期格式、时间格式等。 中文字符的处理和显示是指操作系统能够正确地处理和显示中文字符,包括 GBK、UTF-8 等编码方式。Linux 系统中,中文字符的...

    Linux 5中文显示乱码

    这通常是由于字符编码设置不正确或者缺少支持中文字符集的字体导致的。要解决这个问题,我们需要理解字符编码的基本原理,并掌握一些关键的配置步骤。 1. **字符编码的理解**: - **ASCII编码**:早期的字符编码,...

    Linux 下安装Oracle11g_R2时中文显示成"囗囗囗囗囗囗囗囗"的解决方法

    综上所述,解决Linux下Oracle 11g R2安装时中文显示乱码的问题,需要从locale设置、数据库字符集配置、字体库支持以及图形界面编码设置四个方面入手。通过以上步骤,应该能够成功解决中文显示问题,使得Oracle数据库...

    linux 中文包

    在Linux操作系统中,由于其最初的设计主要面向英文用户,因此默认情况下可能会缺乏对中文字符集的支持。"Linux中文包"正是为了解决这个问题而提供的,它包含了一系列的工具和资源,使得Linux系统能够识别、显示和...

    c/c++ 字符集 gbk/utf8互转,Ansi/Utf8互转 纯c实现跨平台

    本文将深入探讨C/C++中GBK/UTF-8以及ANSI/UTF-8字符集的转换,以及如何通过纯C代码实现这些转换,确保程序在Windows和Linux等不同操作系统上的一致性。 首先,我们需要理解字符集的基础知识。ASCII是最基础的字符集...

    基于Locale的Linux控制台国际化技术.pdf

    然而,实现这种方案需要解决的问题包括如何高效地在内核中处理各种字符集,如何动态调整控制台配置以适应不同的Locale,以及如何确保与现有系统的兼容性。 总的来说,基于Locale的控制台国际化技术是Linux内核发展...

Global site tag (gtag.js) - Google Analytics