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

Posted

技术标签:

【中文标题】默认情况下如何显示隐藏字符(零宽度空格,即&#8203)【英文标题】:How to display hidden characters by default (ZERO WIDTH SPACE ie. &#8203) 【发布时间】:2012-04-09 18:14:27 【问题描述】:

因为这个......小丑 - 零宽度空间,我刚刚失去了部分周末。我只是使用了一些来自 google groups 的 sn-ps 并没有识别出有双字符,因为 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"

【问题讨论】:

这个角色应该被国际条约禁止。这是一种分散注意力的武器。我花了一整天的时间试图找出我的 js 控制台中出现神秘错误的原因。说真的,零宽度字符?这是解决麻烦的完美方法。 UTF 标准委员会是怎么想的? @Nick 你的评论启发了我找到为什么 UTF 包含这个小丑的东西。查看 ZeroWidthCharacter 的美感:ptiglobal.com/2018/04/26/… 【参考方案1】:

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

搜索 [^\x00-\x7F] 并选中 Regex 复选框。

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

【讨论】:

谢谢,实际上我接受了 Vic 为解决问题而创建的插件的答案并给予奖励,该插件链接在他的答案末尾。 是的,我看到了。这是当之无愧的。但对于某些人来说,简单地进行此搜索可能是安装插件更快的解决方案。 我在 php 脚本中使用它来制作格式非常好的 html 内容,以便迁移到 WordPress:$string = preg_replace( '/[^\x00-\x7F]/', null, $string ); htmlspecialchars_decode( htmlentities( html_entity_decode( $string ) ) );【参考方案2】:

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

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

编辑:

有一些空闲时间,因为它看起来像一个流行的问题,我写了一个插件来检查代码是否存在这种异常。它被称为零宽度字符定位器,欢迎您来到give it a try。

【讨论】:

你好,维克,感谢您的回复。不幸的是,这个选项没有显示主题中提到的“零宽度空间”。我确定角色存在,因为可以用 ie 显示它。 vi,但在idea中看不到:/ 我明白了.. 我想我们将不得不等待 CrazyCoder 说它不受支持或类似的东西 :) 从 IntelliJ-14.1 开始它隐藏在 Settings -> Editor -> General -> Appearance -> Show whitespaces -> Leading | Inner | Trailing 是否可以让空白处的点出价?就像在 Sublime 中一样 @WillSewell,您可以通过选择Settings -> Editor -> Color Scheme -> General 来影响颜色,然后在该类别中转到Text -> Whitespaces。我将我的从默认的 Foreground #505050 更改为 #404040 ,发现它们可见但不会分散注意力

以上是关于默认情况下如何显示隐藏字符(零宽度空格,即&#8203)的主要内容,如果未能解决你的问题,请参考以下文章

删除文档中的 U+200B 零宽度空格字符(Typora显示红点)

从 Python 字符串中删除零宽度空格 unicode 字符

读取文件时找不到零宽度无间隔

空格&nbsp在不同浏览器中显示距离不一致问题解决方法

CSS Clearfix使用零宽度空格字符

HTML空格转义字符的使用