9.4.1
中文编码的问题
很多朋友常常哀嚎,说他们的
vim
里面怎么无法显示正常的中文啊?其实这很有可能是因为编码的
问题!
因为中文编码有
big5
与
utf8
两种,如果你的文件是使用
big5
编码制作的,但在
vim
的
终端½口中你使用的是万国码
(utf8)
,
由于编码的不同,你的中文文件内容当然就是一堆乱码了!怎
么办?这时你得要考虑许多东西啦!有这些:
1.
你的
Linux
系统默认支持的语系数据:这与
/etc/locale.conf
有关;
2.
你的终端½面
(bash)
的语系:
这与
LANG, LC_ALL
这几个变数有关;
3.
你的文件原本的编码;
4.
开启终端机的软件,例如在
GNOME
底下的窗口½口。
事实上最重要的是上头的第三与第四点,只要这两点的编码一致,你就能够正确的看到与编辑你的中
文文件。
否则就会看到一堆乱码啦!
一般来说,中文编码使用
big5
时,在写入某些数据库系统中,在『许、盖、功』这些字体上面会发
生错误!
所以½期以来大多希望大家能够使用万国码
utf8
来½行中文编码!但是在中文
Windows
上的软件常常默认使用
big5
的编码
(
不一定是
windows
系统的问题,有时候是某些中文软件的默
认值之故
)
,
包括鸟哥由于沿用以前的文件数据文件,也大多使用
big5
的编码。此时就得要注意上
述的这些咚咚啰。
在
Linux
本机前的
tty1~tty6
原本默认就不支持中文编码,所以不用考虑这个问题!因为你一定会看
到乱码!呵呵!
现在鸟哥假设俺的文件文件内编码为
big5
时,而且我的环境是使用
Linux
的
GNOME
,启动的终端½口为
GNOME-terminal
软件,
那鸟哥通常是这样来修正语系编码的行为:
[dmtsai@study ~]$
LANG=zh_TW.big5
[dmtsai@study ~]$
export LC_ALL=zh_TW.big5
然后在终端½口工具栏的
『终端机』
-->
『设定字符编码』
-->
『中文
(
正体
) (BIG5)
』
项目点选一下,
如果一切都没有问题了,再用
vim
去开启那个
big5
编码的文件,就没有问题了!以上!报告完毕!
9.4.2 DOS
与
Linux
的断行字符
我们在
第六章
里面谈到
cat
这个指令时,曾经提到过
DOS
与
Linux
断行字符的不同。
而我们也可
以利用
cat -A
来观察以
DOS (Windows
系统
)
½立的文件的特殊格式,
也可以发现在
DOS
使用
的断行字符为
^M$
,我们称为
CR
与
LF
两个符号。
而在
Linux
底下,则是½有
LF ($)
这个断
行符号。这个断行符号对于
Linux
的影响很大喔!
为什么呢?
我们说过,在
Linux
底下的指令在开始执行时,他的判断依据是
『
Enter
』,而
Linux
的
Enter
为
LF
符号,
不过,由于
DOS
的断行符号是
CRLF
,也就是多了一个
^M
的符号出来,
在这样的
情况下,如果是一个
shell script
的程序文件,呵呵~½可能造成『程序无法执行』的状态~
因为他
会误判程序所下达的指令内容啊!这很伤脑½吧!