昨天用 Emacs 写了几篇文章,用 UTF-8 保存的。结果今天打开的时候,无法正确识别,汉字全部以 \244\245 这样的二进制字节形式出现。
后来找到方法,先手工设置 buffer-file-coding-system,然后再重新加载缓冲区(revert-buffer)。Info page 里的说明的方法是:C-x c CODING-SYSTEM M-x revert-buffer ,其中的 CODING-SYSTEM 用 utf-8 代替。不过似乎关键的是 buffer-file-coding-system 这个变量的值,也可以用 set-buffer-file-coding-system 来设置。然后一样的用 revert-buffer 来重读文件即可。
不过还有一个侵入式的办法,在文件的头加上这样一段“-*-coding:utf-8;-*-”,也可以使 Emacs 正确读取。注意如果行结束符是 dos 风格的,coding 应该用 utf-8-dos。这种方法还可以设置 mode,比如 mode:C 可以表示用 c-mode 来编辑。
肯定有哪里不对,但是不知道如何改正。现在的情况是,对于 GB2312 编码的文件,Emacs 可以正确识别,但是也有少数字符异常,显示成方框了(比如破折号)。而 utf-8 文件,不论是否有 BOM,都不能正常识别,只能显示成二进制序列。
阅读(2738) | 评论(4) | 转发(0) |