关于charset的问题在编程时总是让我感到困惑,特别是当我的编程环境与生产环境不同时。
我使用secureCRT作为我的终端工具。只有在与内容的字符集一致时,我才能调整Options → Session options → Appearance → Character encoding
以正确显示内容。但是当使用vi在secureCRT中输入/编辑/创建某些内容时,它会变得复杂。
$LANG
环境变量$LANG
环境变量
Options → Session options → Appearance → Character encoding
如果这3个变量不统一,那么我输入vi(vim)的任何中文字符都会显示为乱七八糟(即A = UTF-8,B = GBK,C = GBK(GBK是中文) )。这非常复杂。 vi接受来自我的IME(谷歌中文IME)的字节,这些字节对于GBK中的中文字符(变量B)是正确的。但是,secureCRT根据GBK(变量C)将这些字节显示为字符。我的问题是为什么它显示不正确?
如果我绕过vi(vim)但使用相同的A,B,C变量集(即如果我在Windows中创建GBK文件并将其上传到我的服务器)那么vi(或更多/更少/ cat)文件,所有字符都正确显示。使用vi创建一些中文内容和使用vi仅显示文件内容有什么区别?当我使用IME键入vi时发生了什么?
我认为这个问题对我们彻底理解charset / font非常有用。非常感谢你对此提出的任何建议。