首页 > 解决方案 > emacs中的汉字——windows上的no-window-system

问题描述

我最近开始在 Termux 的 Android 上使用 emacs。我的项目有一些汉字,在那里显示得很好。

Termux 中的 Emacs

后来在 Windows 上的 Emacs 中打开同一个文件时,我很失望地看到它们显示为\xxxx

Windows 上的 Emacs

我不确定如何寻找解决方案,因为我不知道问题是什么。

我发现的唯一与我的问题有关的是:

emacs 术语模式中的 Unicode 字符

但这并没有帮助我解决问题。

标签: emacs

解决方案


您可以通过查看模式行中的前几个字符来判断发生了什么。在 Termux 中,它说UUU,但在 Windows 中,它说DDU. 这三个字符代表:

  1. 键盘输入的编码系统
  2. 终端输出的编码系统
  3. 缓冲区中文件的编码系统

U代表 UTF-8,而D代表各种 DOS 代码页。(您可以使用 找到这个。这在 Emacs 手册的模式行部分中M-x list-coding-systems都有描述。)

所以这意味着 Emacs 正在正确读取文件,但它认为终端无法显示汉字,所以它使用\uxxxx符号作为后备。我不确定如何让它在 Windows 终端中正常工作,但尝试一下M-x set-terminal-coding-system-utf-8它可能只是工作。


顺便说一句,如果您将 Emacs 作为“普通”Windows 应用程序而不是在终端中运行,则字符应该会自动正确显示,因此如果有特定问题阻止您这样做,则可能值得尝试修复它.


推荐阅读