默认情况下如何显示隐藏字符(零宽度空间,即&#8203)


197

我只是因为这个周末而失去了一部分...小丑-零宽度的空间。我只是使用了来自Google网上论坛的一些代码片段,却不知道字符有加倍,因为Idea(11)没有显示它们,这导致解析我的应用程序的配置文件时出现了问题...我在vi中偶然发现了它。

有什么方法可以在IntelliJ中显示此类内容(或通过其他方式检查文件),而无需使用外部编辑器。

IntelliJ 11 / Mac OS 10.7

编辑-样本

在浏览器和Idea中,这两行看起来都是相同的。您可以在页面的代码中看到,在第一行-注释行中,mysql://和之间隐藏了零宽度空格localhost,这会引起问题。当然,如果您希望使用“小丑”,则可以尝试使用搜索替换它,但是没人希望该符号不存在,特别是如果他无法以任何方式看到它时。

#db.default.url="jdbc:mysql://​localhost/play-fullcalendar"
 db.default.url="jdbc:mysql://localhost/play-fullcalendar"

22
国际条约应禁止这种性质。这是分散注意力的武器。我花了一整天的时间试图找出导致我的js控制台出现神秘错误的原因。认真地,一个零宽度的字符?那是麻烦的绝妙秘方。UTF标准委员会在想什么?
尼克

@Nick,我在加载JS时遇到了麻烦(我在文件末尾的菱形内出现一个问号),我认为这是一个编码问题。我得到了Uncaught SyntaxError: Unexpected token ILLEGAL一些研究,这使我想到了这是一个隐藏的符号问题。我如何找到您正在谈论的这个神秘的零宽度字符?只是看看这是否是问题...
Milkncookiez

Answers:


359

不确定您的意思是什么,但是您可以永久地在中打开和关闭空白显示Settings -> Editor -> General -> Appearance -> Show whitespaces

另外,您只能在中为当前文件设置它View -> Active Editor -> Show WhiteSpaces

编辑:

由于看起来很受欢迎,因此有一些空闲时间,我编写了一个插件来检查代码中是否存在此类异常。它被称为零宽度字符定位器,欢迎您尝试一下


4
你好维克,谢谢你的答复。不幸的是,此选项未显示主题中提到的“零宽度空间”。我确定该字符存在,因为可以使用ie来显示它。Vi,但是在Idea中看不到它:/
biesior 2012年

2
我明白了。我想我们必须等待CrazyCoder声明它不受支持或类似的东西:)
Vic

5
从IntelliJ-14.1开始,它被隐藏在Settings -> Editor -> General -> Appearance -> Show whitespaces -> Leading | Inner | Trailing
Rob

4
是否可以在空白出价者处打点?就像在Sublime中一样
OlehZiniak

2
@WillSewell,您可以通过选择来影响颜色Settings -> Editor -> Color Scheme -> General,然后在该类别中转到Text -> Whitespaces。我将我的默认前景从#505050更改为#404040,发现它们可见但不分散注意力
chaserb

81

一个非常简单的解决方案是使用正则表达式在文件中搜索非ASCII字符。这将很好地突出显示所有带有边框的斑点。

搜索 [^\x00-\x7F]并选中正则表达式复选框。

结果将如下所示(在暗模式下):

零宽度空间可见


Thx,实际上我接受了Vic的回答,并悬赏给他为解决问题而创建的插件,该链接在他的回答结尾。
biesior

2
是的,我看到了。这是当之无愧的。但是对于某些人来说,仅执行此搜索可能是安装插件的更快解决方案。
Micros

我在php脚本中使用了此格式,以制作格式良好的HTML内容以迁移到WordPress:$string = preg_replace( '/[^\x00-\x7F]/', null, $string ); htmlspecialchars_decode( htmlentities( html_entity_decode( $string ) ) );
aequalsb

@Micros。Windows是否有任何使用正则表达式在文件中搜索非ASCII字符的Windows编辑器?就我而言,我需要找到'\ u11891'来解决这种类型的错误:SyntaxError:无效字符'\ u11891
user1788736

@ user1788736是的,许多语法突出显示的编辑器都支持此功能。您可以使用Sublime Text,也可以使用JetBrains应用程序之一,例如WebStorm或IntelliJ。
Micros

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.