全部博文(78)
分类:
2008-03-19 09:09:51
虽然主流的几大 Linux 发行版都开始逐渐将 UTF-8 作为默认字符集, 但以前在网上看到有人写过 All things in UTF-8 之类的文章, 一副慷慨赴死的样子, 让我不寒而栗。
然而, 虽然我一开始对 UTF-8 持抵制态度, 但时间长了还是忍不住要观望一下。 而且在 GBK 环境下, 基于 GTK2 的程序中保存的中文文件名老是乱码 —— 包括 Firefox, 于是忍无可忍后, 我终于还是换成了 UTF-8。
在 UTF-8 下也生活了将近一年了, 时至今日, 写篇文章总结一下由 GBK 到 UTF-8 迁移过程中的一些痛苦。
迁移之前滇狐一直以为将所有文件名转换成为 UTF-8 是一件非常痛苦的事情, 正式开始迁移之后才发现, 问题一点都不严重。 滇狐平时一直养成了用英文名作文件名的好习惯, 因此真正需要转换的文件名仅限于 mp3、电影和一些电子书等。 安装 convmv 这个好用的工具后, 切到这几个目录下, 简单地运行一下:
立刻就转换过来了。
FTP 是一个比较严重的问题: 目前国内绝大部分 ftp 都是 GBK 编码的。 所幸
lftp 的转码功能非常强, 因此在你的 ~/.lftprc
中加入以下内容即可:
许多人机器上都会有 FAT32 分区, 在把系统转换成 UTF-8 之后, mount FAT32
分区的时候也要进行相应转码, 在 -o
后原有参数后再加上如下选项:
文本文件基本没有什么转换的必要, 因为滇狐平时编辑文件都使用 VIM, 而
VIM 始终可以正确地识别各种中文编码。 因此除非有什么特殊需要, 我没有必要将以前的
GBK 编码的文件转换为 UTF-8 的。 如果必须转换的话, 用 VIM 打开文件后
:set fenc=utf-8
, 再 :wq
就可以了,
很省事。 如果需要批量转换的话, 还可以用 iconv。
目前我没找到 对 UTF-8 的支持, 或者我不会用。 所以用 Viki 时我还得临时把 VIM 保存文件的编码设置为 GBK, 代码如下:
然后, 在调用 VIM 进行语法加亮的时候, 也要进行相应地修改, 启动 VIM
的时候加上 +"set fenc=cp936"
参数, 告诉
VIM 这个文件的编码是 GBK 的。 参看中的修改。
之前用 pickle 在文件里存放了一些对象, 当然, 对象里也包含了字符串。 切换到 UTF-8 之后, 由于解码失败, 那些对象无法读出来了。 因此, 各位 Python 爱好者以后在存储对象的时候, 一定记得要使用 Unicode 字符串, 这样不容易出问题。
很荣幸能让 QTerm 在我这份简短的笔记里能有如此重要的地位。 该死的 QTerm
在保存配置文件和地址簿的时候没有使用 Unicode, 也没有记录编码信息。
因此在切换到 UTF-8 环境下之后, 我们需要手工把 ~/.qterm/address.cfg
和 ~/.qterm/qterm.cfg
的编码转换一下, 转换方法参看前面的“文本文件转码”。
LaTeX 目前 CJK 已经支持 UTF-8, 在 LaTeX 中使用 UTF-8 的详细示例请参看。
目前绝大部分 MP3 中的 tag 都不符合标准, 而 AmaroK 等播放器又坚决不支持非标准
tag, 因此我们需要一个转码程序把这些 MP3 中的 tags 转换一下。 在 Debian
下安装 python-mutagen
包, 然后在 MP3 的目录下运行:
就可以将所有 tags 转换为 UTF-8 编码。