Sublime Text:不可表示的字符

问题描述 投票:9回答:3

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

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

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

character-encoding sublimetext2 sublimetext sublimetext3
3个回答
13
投票

我有这个问题。它是由文档中的损坏字符引起的。这是我如何解决它。

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

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

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

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

2)搜索它,并按住F3直到看到损坏的字符。通常像“¨”这样的“à”的腐败版本。

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

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


0
投票

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

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

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


0
投票

只需添加@Draken响应:这里是添加了西班牙语字符的RegEx。

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

在我的情况下,我按Ctrl + H(替换)并作为替换表达式使用任何东西。所以一切都得到了超快速的清除,我能够使用ISO-8859-1保存它。

希望这可以帮助某人,甚至将来帮助我。干杯!!

© www.soinside.com 2019 - 2024. All rights reserved.