对语言环境和编码感到困惑

时间:2012-04-08 10:38:52

标签: c linux ubuntu

以下是我的区域设置。

LANG=en_US.UTF-8
LC_CTYPE=zh_CN.UTF-8
LC_NUMERIC=en_US.UTF-8
LC_TIME=en_US.UTF-8
LC_COLLATE=en_US.UTF-8
LC_MONETARY=en_US.UTF-8
LC_MESSAGES=en_US.UTF-8
LC_PAPER=en_US.UTF-8
LC_NAME=en_US.UTF-8
LC_ADDRESS=en_US.UTF-8
LC_TELEPHONE=en_US.UTF-8
LC_MEASUREMENT=en_US.UTF-8
LC_IDENTIFICATION=en_US.UTF-8
LC_ALL=

如果我将LC_CTYPE更改为en_US.UTF-8,则无法在终端或其他应用程序中输入中文字符。为什么?前缀的功能是什么:LC_TYPE中的en_US或zh_CN?

如果我想输入中文单词,那么我设置LC_CTYPE = zh_CN,如果我想输入另一种语言(假设它是X),那么我设置LC_CTYPE = X.但如果我想输入中文和X,那么我该怎么办?

2 个答案:

答案 0 :(得分:0)

LC_CTYPE适用于字符的分类和转换,以及多字节和宽字符。

zh是中国的ISO代码。 zh_CNzh的子类型,代表“简体中文”。

答案 1 :(得分:0)

请注意,您可以为每个bash会话导出语言环境,因此如果您设置LANG等并在同一脚本中启动X会话 - 整个X Session将接受此语言。 例如,以下脚本启动德语的VNC会话,它与系统语言无关。您可以在此处为所需的输入布局添加所需的环境变量,并为每个X会话获取所需的结果。

#!/bin/bash
export LANG=de_DE.UTF-8
export LANGUAGE=de_DE:de
vnc4server -depth 16 -geometry 1024x768 :1
vncconfig -iconic -nowin -display :1 &