文件打开显示为乱码,怎么解决?

我下了几个latex写中文书的模板(地址),用emacs打开后,发现中文部分显示为乱码,如下图:

网上查到了Emacs打开文件乱码的解决办法, 具体做法是:

  1. M-x describe-coding-system 查看使用的编码方案:
  2. 换成正确的编码方案: M-x revert-buffer-with-coding-system

可是我试了几种编码方式(跟utf-8相关的几个都试了,见下图),都不能正常显示中文。

模板的下载链接里提到要用UTF-8编码打开,我觉得我已经这么做了呀。

会不会跟操作系统有关?我用的是ubuntu,而这些文件是win下生成的?

试试 GBK?

1 个赞

感谢! 用GBK 成功解决!

能稍微解释一下吗?

根据经验,这乱码看起来像 GBK。(水木 BBS 的GBK 在 UTF-8 的终端下显示就是类似这样。)

估计上传文件的时候被网站强制转码了。或者这文件就是在 windows 下生成的。

下次遇到乱码可以用 file 命令查看编码。

确实是这个编码,但是怎么把文件编码方式改回去呢?

Emacs打开文件乱码的解决办法 这里说可以

“C-x f 编码方式”,“C-x C-s”

用其他编码保存文件来彻底解决问题。

但是我试了一下,怎么不行呢,重新打开文件又乱码了! 一个个文件去修改编码方式太费劲了,可不可以把这些文件批量地转换编码方式?

你需要 (RET 为回车键)

  1. C-x RET r (即 revert-buffer-with-coding-system 命令) 输入 “GBK” 回车
  2. C-x RET f (即 set-buffer-file-coding-system 命令) 输入 “utf-8” 回车
  3. C-x C-s 保存

或者在文件开头添加 %% -*- coding: utf-8 -*- 然后保存

3 个赞

如果有很多文件,可以用命令行的 iconv 处理

这个年代,GBK 编码的文件就不应该存在… 写Python时被这种格式坑过… :joy::triumph:

Unicode 中文字不够全,没有录生僻字异体字,一些不同的字还占了同一个码位。

2 个赞