我正在尝试了解该$LANG
变量与 gnome-terminal(及其字符编码首选项)的行为方式。我一直在使用 iso8859-1 (latin1) 作为我的主要字符集,并且我所有的文件名都是这样编码的。
对于以下测试,我将创建一个ls -l
文件名中带有西班牙重音字符的目录:
情况1:
LANG
设置为“en_US-iso8859-1”案例#2:
LANG
设置为“en_US-iso8859-1”案例#3:
LANG
设置为“en_US-UTF-8”为什么在最后一种情况下我看到乱码?ls的输出不应该按原样将文件名直接发送到 gnome-terminal 吗?由于 gnome-terminal 是为 ISO-8859-1 配置的,我原以为它们看起来是正确的。
有一段时间我想,也许 bash 正在考虑我的$LANG
变量并执行一些转换。然后我将终端切换到 UTF-8,但我仍然看不到正确的字符。我什至将 ls 的输出通过管道传输到 xxd ,令我惊讶的是,我仍然看到编码的文件:ISO-8859-1。
总结:如果我的列表包含 ISO-8859-1 字符,并且我的终端模拟器配置为相同的字符编码:当LANG
设置为其他时,谁在进行转换?
感谢您的任何帮助,您可以提供。
克拉科尼亚
terminal-emulator terminal character-encoding locale gnome-terminal