我是Windows的新手,当从一些Windows应用程序将文本片段粘贴到Emacs时,我在保存文件时遇到了问题。似乎我的编码通常是iso-latin-1-dos(我没有在任何地方明确地设置它,我不要求它那样)和变形字符(üöä......)不引起任何问题。
以下是错误消息的示例:
These default coding systems were tried to encode text
in the buffer `wdiary.org':
(iso-latin-1-dos (22406 . 8226) (22438 . 8226) (22469 . 8226) (22528
. 8226) (22576 . 8226) (22680 . 8226) (22759 . 8220) (22841 . 8221)
(22905 . 8217) (23081 . 8226) (23192 . 8226))
However, each of them encountered characters it couldn't encode:
iso-latin-1-dos cannot encode these: • • • • • • “ ” ’ • ...
选择utf-8会得到相同的结果。
有问题的字符示例(它们显示正确但文件拒绝保存):
• ‣ ...
如何保存包含这些字符的文件?
可能性是在粘贴时使用标准符号自动替换字符(或最新保存),例如,将任何项目符号映射到-
。看起来Xah Lee的zap_gremlins就是这样,但问题是我应该如何保存他的文件,因为它会包含违规字符。
非常感谢!
答案 0 :(得分:2)
我终于通过以下方式解决了这个问题:
通过在第一行添加来强制UTF-8在包含违规符号的文件上:
# -*- coding: utf-8 -*-
这样可以正常保存。
(prefer-coding-system 'utf-8)
(setq x-select-request-type '(UTF8_STRING COMPOUND_TEXT TEXT STRING))
这将设置新缓冲区的编码。最后可以使用Xah Lee的脚本进行交换(但是使用utf-8不需要这样做。)