有没有一种方法可以在Sublime Text或任何其他文本编辑器中突出显示所有特殊重音字符?

80

我正在使用Sublime text中的HTML编码特殊字符来将所有特殊字符转换为它们的HTML代码。我的文件中有很多不同部分的重音符号字符。因此,如果我可以选择所有特殊字符,然后使用插件一次性转换所有字符,那就太好了!

是否有正则表达式可以帮助选择所有特殊字符?

3个回答

198

可以。

Sublime Text支持正则表达式,您可以选择所有非ASCII(代码点 > 128)字符。这个正则表达式应该足够满足您的需求:

[^\x00-\x7F]

只需要搜索和替换。

但如果你在首次编写HTML时手动进行编码,那么你是错误的。请将你的文件保存为UTF-8编码(Sublime Text 2默认),并确保您的Web服务器也以UTF-8发送这些文件。不需要任何转换、编码或其他操作。


1
然而,在编写HTML电子邮件时,通常不能使用UTF-8,因为并非所有的电子邮件客户端都支持它。在这些情况下,需要进行手动HTML编码。 - Mark Northrop
@mtnorthrop:请问UTF-8会在什么情况下引起问题?我正在发送大量的HTML电子邮件,想知道可能遇到哪些问题。 - Mikko Ohtamaa
无法感谢你提供的帮助……我已经花了几个小时尝试查看一个非 UTF-8 数据文件,一直在试图解决这个问题。 - Matt Kim
太好了!这个正则表达式解决方案不仅限于Sublime编辑器,它也适用于支持正则表达式搜索的任何其他编辑器。 - Zaphod Beeblebrox

15

作为进一步参考(或补充):

Sublime Text 2/3软件包名为Highlighter,可以(如其名称所示)使用正则表达式突出显示某些字符...

"您还可以添加自定义正则表达式以突出显示字符。"

因此,使用此软件包加上@Mikko Ohtamaa的答案,我们可以编辑文件...

highlighter.sublime-settings - User

...并包含建议的正则表达式(在此表示为[^\\x00-\\x7F]),最终得到像这样的结果:

{  
    "highlighter_regex": "(\t+ +)|( +\t+)|[^\\x00-\\x7F]|[\u2026\u2018\u2019\u201c\u201d\u2013\u2014]|[\t ]+$"  
}

结果将会自动高亮显示文件中的任何"非ASCII(代码点>128)字符"

请注意,这不会选择这些字符,只会将它们高亮显示,以便轻松地了解是否存在这些字符。


7

另一个插件选项

我最近编写了一个专门用于突出显示非ASCII字符的插件: https://github.com/TuureKaunisto/highlight-dodgy-chars

使用Highlighter插件也可以实现完全相同的功能,但使用不太通用的Highlight Dodgy Chars插件,您无需编写正则表达式,只需在设置中列出您不希望突出显示的非ASCII字符。欧洲特殊字符默认已列入白名单。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接