Linux区域设置:en_US.UTF-8 vs en_US

我通常configuration我的Ubuntu的通过

sudo locale-gen --purge en_US.UTF-8 

我已经安装了语言环境

 # locale -a C C.UTF-8 en_US.utf8 POSIX 

我错过了en_US好吗?

是的,你可能相当好。 假设en_US.utf8包含一个UTF-8美式/英式区域设置,它应该可以正常工作。 这就是我自己使用的:

 % echo $LANG en_US.UTF-8 

如果你运行locale -v -a ,它会更具描述性:

 % locale -v -a locale: en_US archive: /usr/lib64/locale/locale-archive ------------------------------------------------------------------------------- title | English locale for the USA source | Free Software Foundation, Inc. address | http://www.gnu.org/software/libc/ email | [email protected] language | English territory | USA revision | 1.0 date | 2000-06-24 codeset | ISO-8859-1 locale: en_US.utf8 archive: /usr/lib64/locale/locale-archive ------------------------------------------------------------------------------- title | English locale for the USA source | Free Software Foundation, Inc. address | http://www.gnu.org/software/libc/ email | [email protected] language | English territory | USA revision | 1.0 date | 2000-06-24 codeset | UTF-8 

en_USen_US.utf8之间的唯一区别是前者使用ISO-8859-1作为字符集,而后者使用UTF-8。 更喜欢UTF-8。 唯一的区别在于它们能代表什么字符。 ISO-8859-1代表许多美国人(英文字母,加上几个带有重音的字母)共同的字符,而UTF-8编码所有的Unicode,因此,几乎所有你能想到的语言。 今天,UTF-8是一种事实上的文本标准编码。 (这就是为什么你应该喜欢它。)

en_US.utf8包含了ASCII所做的一切,但我不认为它涵盖了更多的东西。 系统将无法打印/查看除这些字符以外的其他字符,并在遇到其中一个未知字符时显示一个框(或带有问号的框)。