我正在研究终端自定义,特别是文本编码。我了解UTF-*
编码之间的差异,以及不同编码类型之间的差异(例如ISO*
,UTF-*
等等)。但是我不太了解它们在语言环境中的应用,或者,就此而言,特定的语言环境设置实际上应该做什么。
如果我在终端中输入命令,locale -a
就会出现一个可以使用的语言环境列表:
af_ZA
af_ZA.ISO8859-1
af_ZA.ISO8859-15
af_ZA.UTF-8
am_ET
am_ET.UTF-8
be_BY
be_BY.CP1131
... <~200 line snip>
C
POSIX
例如,如果我选择af_ZA.UTF-8
,我的终端将使用 UTF-8 编码。既然如此,为什么我选择af_ZA.UTF-8
而不是en_AU.UTF-8
(或fr_FR.UTF-8
)很重要?难道不是全部都是 UTF-8 吗?区域设置的语言/位置部分实际上起什么作用?
答案1
区域设置不仅用于指定编码类型,还用于指定更多内容;它们包含因国家/地区而异的数字、日期/时间和货币格式。它们还可以解释不同地方的排序规则和字母表特质。
/usr/bin/locale 由 glibc 使用,因此其设置的任何实际表现将由使用它的软件的作者决定。人们经常想编写一些程序来计算金钱、打印日期或对值进行排序,并让这些程序正确地显示在每个人的 PC 上,无论他们身在世界的哪个地方。通过正确设置您的区域设置,这些程序将为您正确显示数据。