Emacs重新加载时无法显示Unicode

4

当我在文本文件中插入一个—(破折号)时,Emacs最初会正确显示它。但是当我重新加载Emacs后,所有的—都显示为\342\200\224。

我该如何让Emacs像最初一样显示这些字符?我使用的是Windows 7和Emacs 24.3.1。主模式是“文本”,副模式是“填充”。


模型行中的指示器显示什么?(在开始时必须是 U,否则 Emacs 不会识别(或可能根本没有保存)该文件为某种 Unicode。插入宽字符后,请尝试将其保存为 Unicode,方法是执行 C-x C-m f(选择某些 Unicode 编码) C-x C-s。) - user797257
C-x C-m 将我进入命令行界面。 - Simon Morgan
如果你说的命令行是指迷你缓冲区,那么这就是期望的效果。然后你可以开始输入“utf”,并按下 TAB 键以查看可能的完成选项。如果你已经更改了此绑定,或者你的终端解释方式不同,你可以执行 M-x set-buffer-file-coding-system 命令 - 这是相同的操作。 - user797257
不,它实际上在Emacs缓冲区内启动了一个命令行。从我所读的内容来看,C-m似乎默认是RET的别名。感谢提供函数名称。 - Simon Morgan
是的,更准确地说,情况恰恰相反:RETC-m 的别名。我们的祖先对键盘的使用方式非常奇怪...不过,无论你怎么做,它都应该能够正常工作,C-x C-m f 似乎更容易一些,因为你不需要释放控制键 / m 就在你的食指后面。 - user797257
1个回答

4
尝试将以下内容插入到您的init文件中。它应该确保Emacs将文件保存为Unicode(并正确地读取它们)。 ```(setq coding-system-for-write 'utf-8) (prefer-coding-system 'utf-8)```
;;;;;;;;;;;;;;;;;;;;
;;; set up unicode
(prefer-coding-system       'utf-8)
(set-default-coding-systems 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(setq default-buffer-file-coding-system 'utf-8)                      
(setq x-select-request-type '(UTF8_STRING COMPOUND_TEXT TEXT STRING))

我相当肯定这些选项大多数是不必要的,但在插入它们后,我再也没有遇到编码问题。宁愿安全也不要抱有侥幸心理。:-)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接