Zen*_*Zen 9 character-encoding input-method unicode
我正在使用 Ubuntu14.04 连接到远程主机。
它的版本是:
Linux 版本 2.6.32-431.11.5.el6.yyyzzz.x86_64(gcc 版本 4.4.7 20120313(Red Hat 4.4.7-4)(GCC))#1 SMP Thu Jul 3 09:42:34 CST 2014
我在那台机器上上传的文件不能正确显示汉字。然后我打开一个文件,用 Ubuntu 随机输入汉字ibus input method
。它显示:
~R~V?~K~B~I~W?~I~N~T??~T~E
Run Code Online (Sandbox Code Playgroud)
我在网上搜索并尝试了以下两种方法:
1:检查语言环境
It shows:
LANG=en_US.UTF-8
LC_CTYPE="en_US.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=
Run Code Online (Sandbox Code Playgroud)
好像没问题。
2:安装中文支持包
我做了:
yum install "@Chinese Support"
Run Code Online (Sandbox Code Playgroud)
它在那台机器上安装了 178M 文件。
之后,我打开另一个文件,并尝试用 ibus 输入一些中文。但是问题依然存在,如何解决呢?
update1 之后 我做了更多的研究。我发现有些字符可以正确输入(通过拼音输入法,ibus)。喜欢:
? ? ? ?
Run Code Online (Sandbox Code Playgroud)
它们都对应着它们的拼音。但是每个字符后面都有一个自动生成的空格(不是我输入的)。
如果我尝试输入 ??????? (它们与上述4个汉字的拼音相同)。我有:
?~P?~]~\ ~[? ~H?
Run Code Online (Sandbox Code Playgroud)
根据我的经验,如果代码转换完全搞砸了。当我输入拼音时,我会得到一些看起来像中文但实际上不是的有线字符,它们永远不会与我输入的拼音对应。
这一次,情况有点不同。我可以正确输入一些字符(带有系统生成的空格),而其他字符则无法辨认。
基本上,这可以是你的区域设置,其被设置为之间的失配的问题UTF-8
,你的Chineses字符文件的编码,其可以在被编码gbk
,gb2312
,gb18030
,或Big-5
。
所有上面列出的那些编码是不相容用UTF-8
。
现在,让我们假设gbk
是您的文件的编码。因此,当您尝试显示文件内容时,gbk
编码文件被解释为UTF-8
文件,这会导致乱码。
使用luit
. (首选)
$ whatis luit
luit (1) - Locale and ISO 2022 support for Unicode terminals
Run Code Online (Sandbox Code Playgroud)
luit -encoding gbk cat a_chinese_file.txt
由于使用的大多数(如果不是所有)编码都与 兼容ASCII
,并且如果您只需要字符 inASCII
和另一种编码,则可以使用以下两种方法。
更改终端的编码
你可以考虑一下,因为这种方法不需要安装额外的包。
更改您的语言环境
但我认为这需要您安装相应的语言环境。
关于上面提到的中文编码的一些细节。
gbk
, gb2312
,gb18030
是简体中文的编码。
如果您不确定您的文件使用的是哪种特定编码,请假设它是gb18030
.
每个编码中包含的字符数如下:gb18030
> gbk
> gb2312
。高级编码是以下内容的超集。
Big-5
是繁体中文的编码。
更重要的是,简体中文的编码有时被称为CP936
(代码页936,我认为这个名字来自Windows)。
归档时间: |
|
查看次数: |
28184 次 |
最近记录: |