Chinaunix首页 | 论坛 | 博客
  • 博客访问: 571292
  • 博文数量: 79
  • 博客积分: 2513
  • 博客等级: 少校
  • 技术积分: 806
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-04 18:46
文章分类

全部博文(79)

文章存档

2014年(1)

2010年(5)

2009年(8)

2008年(11)

2007年(41)

2006年(13)

我的朋友

分类: LINUX

2006-10-07 21:24:39

昨天用 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,都不能正常识别,只能显示成二进制序列。
阅读(2698) | 评论(4) | 转发(0) |
给主人留下些什么吧!~~