【问题标题】:Sublime Text: Not representable charactersSublime Text:不可表示的字符
【发布时间】:2014-09-09 10:00:40
【问题描述】:

我正在为 Latex 使用 Sublime Text,所以我需要使用特定的编码。但是,在某些情况下,当我粘贴从其他程序(大多数情况下是单词/浏览器)复制的文本时,我会收到以下消息:

"Not all characters are representable in XXX encoding, falling back to UTF-8"

我的问题是:有什么方法可以查看文本的哪些部分无法编码,所以我可以手动删除它们?

【问题讨论】:

    标签: character-encoding sublimetext2 sublimetext sublimetext3


    【解决方案1】:

    我遇到了这个问题。它是由文档中的损坏字符引起的。这是我解决它的方法。

    1) 在您的文档中搜索所有标准字符。确保在搜索中启用正则表达式,然后粘贴:

    [^a-zA-Z0-9 -\.;<>/ ={}\[\]\^\?_\\\|:\r\n@]
    

    您可以添加您的语言的正常重音字符,这里是法语和德语的字符。如éà等:

    [^a-zA-Z0-9 -\.;<>/ ='{}\[\]\^\?_\\\|:\r\n~@éàèêîôâûçäöüÄÖÜß]
    

    2) 搜索它,然后一直按 F3 直到看到损坏的字符。通常是“è”之类的东西,它是“à”的损坏版本。

    3)删除这些字符或将它们替换为应有的字符。

    清除所有损坏的字符后,您就可以将文档转换为另一种编码。

    【讨论】:

    • 这在我的情况下不起作用。当我下班粘贴时(甚至是标准英文字符),有时编码会发生变化,导致问题的字符不可见。
    • 这对我来说非常有效。这是包含德语重音字符的正则表达式。也许你想编辑你的帖子,@Draken:[^a-zA-Z0-9 -\.;&lt;&gt;/ ='{}\[\]\^\?_\\\|:\r\n~@éàèêîôâûçäöüÄÖÜß]
    【解决方案2】:

    对于 Linux 用户,还可以使用命令 iconv自动删除损坏的字符:

    iconv -f UTF-8 -t Windows-1251 -c < ~/temp/data.csv > ~/temp/data01.csv
    

    -c 静默丢弃无法转换的字符,而不是在遇到此类字符时终止。

    【讨论】:

      【解决方案3】:

      只需添加到@Draken 响应:这是添加了西班牙字符的正则表达式。

      [^a-zA-Z0-9 -\.;&lt;&gt;/ =“”'{}\[\]\^\?_\\\|:\r\n~@àèêîôâûçäöüÄÖÜßáéíóúñÑ¿€]

      在我的例子中,我点击了 Ctrl+H(用于替换)并使用 nothing 作为替换表达式。所以一切都很快被清除了,我能够使用 ISO-8859-1 保存它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-06-08
        • 1970-01-01
        • 1970-01-01
        • 2017-02-12
        • 1970-01-01
        • 1970-01-01
        • 2023-04-08
        相关资源
        最近更新 更多