emacs - emacs中的汉字——windows上的no-window-system
问题描述
我最近开始在 Termux 的 Android 上使用 emacs。我的项目有一些汉字,在那里显示得很好。
后来在 Windows 上的 Emacs 中打开同一个文件时,我很失望地看到它们显示为\xxxx
我不确定如何寻找解决方案,因为我不知道问题是什么。
我发现的唯一与我的问题有关的是:
但这并没有帮助我解决问题。
解决方案
您可以通过查看模式行中的前几个字符来判断发生了什么。在 Termux 中,它说UUU
,但在 Windows 中,它说DDU
. 这三个字符代表:
- 键盘输入的编码系统
- 终端输出的编码系统
- 缓冲区中文件的编码系统
U
代表 UTF-8,而D
代表各种 DOS 代码页。(您可以使用 找到这个。这在 Emacs 手册的模式行部分中M-x list-coding-systems
都有描述。)
所以这意味着 Emacs 正在正确读取文件,但它认为终端无法显示汉字,所以它使用\uxxxx
符号作为后备。我不确定如何让它在 Windows 终端中正常工作,但尝试一下M-x set-terminal-coding-system
-utf-8
它可能只是工作。
顺便说一句,如果您将 Emacs 作为“普通”Windows 应用程序而不是在终端中运行,则字符应该会自动正确显示,因此如果有特定问题阻止您这样做,则可能值得尝试修复它.
推荐阅读
- java - Play Framework 无法处理超过 12 个并发连接
- c++ - 使用 wxWebView 时应该如何避免崩溃
- jquery - 将字符串的第一部分大写
- machine-learning - 在聚类之前我应该对时间序列进行分析吗?
- python - Heroku Python Worker ProcFile
- css - 如何为 body 和 png img 设置相同的背景图像?
- jpa - 从 JPA 在 PostgreSQL 中生成检查约束
- swift - Swift 4字符串格式化程序到货币
- java - @RequestBody 变量返回空属性
- python - 正则表达式:从文本中提取一些信息