使用Unicode字符保存文件时出现问题

时间:2013-11-26 09:13:57

标签: emacs unicode encoding

我是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就是这样,但问题是我应该如何保存他的文件,因为它会包含违规字符。

非常感谢!

1 个答案:

答案 0 :(得分:2)

我终于通过以下方式解决了这个问题:

  1. 通过在第一行添加来强制UTF-8在包含违规符号的文件上:

    # -*- coding: utf-8 -*-
    
  2. 这样可以正常保存。

    1. 添加到配置:
    2.     (prefer-coding-system 'utf-8)
          (setq x-select-request-type '(UTF8_STRING COMPOUND_TEXT TEXT STRING))
      

      这将设置新缓冲区的编码。最后可以使用Xah Lee的脚本进行交换(但是使用utf-8不需要这样做。)