什么是HTML字符代码8203?


127

字符代码(HTML)是​什么?我在我的一个jQuery脚本中找到了它,并想知道它是什么。

谢谢。

编辑:

这是它所在的脚本(已添加到末尾,在Firebug中找到了它)

<script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script>
<script type="text/javascript">
var $jnyh = jQuery.noConflict();


$jnyh(function() {
    $jnyh("#title-nyh").click(function() {
      $jnyh(".show-hide-nyh").slideDown("slow");
    }, function() {        
      if(!$jnyh(this).data('pinned'))
        $jnyh(".show-hide-nyh").slideUp("slow");
    });
    $jnyh("#title-nyh").click(function() {
    $jnyh(this).parent().toggleClass("title-btm-brdr");
       $jnyh(this).toggleClass("chev-up-result");
      var pin = $jnyh(this).data('pinned');
      $jnyh(this).data('pinned', !pin);
      if(pin) $jnyh(".show-hide-nyh").slideUp("slow");      
    });
});​&#8203;
</script>

1
我在这里找到了一篇对我有帮助的文章:js从字符串中删除零宽度空间Unicode 8203
Yuchi

2
有趣。我只是发现它曾经使欺诈邮件中的imgur URL变得模糊:ii&#8203; m&#8203; g&#8203; u&#8203; r&#8203;。…
Lambart

它在MDN手册上使用。例如,如果您要从H1标题中复制javascript对象名称(例如developer.mozilla.org/en-US/docs/Web/API/NodeFilter),则在小“ e“和” F“…它将在您的脚本中失败。我不知道为什么Mozilla使用它…也许只是她讨厌我们:D
iiic

Answers:


158

这是Unicode字符“零宽度空间”(U + 200B)

此字符用于换行控制;它没有宽度,但是它存在于两个字符之间并不能防止对齐时字母间距的增加

根据给定的代码示例,该实体在此上下文中是完全多余的。必须偶然插入它,最有可能是由试图使用空格或突出显示来完成智能操作的越野车编辑,或者是使用使用该字符的键盘语言(例如阿拉伯语)的最终用户插入的。


3
谢谢。奇怪的是,它最终如何出现在我的jQuery中。
凯尔2010年

1
@Kyle我已经在我的CSS文件中找到了这个字符,它倾向于破坏它们,以致浏览器无法正确解析我的CSS。因此,如果它可能导致脚本文件出现问题,我不会感到惊讶。
AaronLS 2012年

1
“必须偶然插入”-也称为字节顺序标记。
乔纳森·迪金森

8
@Jonathan:绝对不是字节顺序标记
BalusC'2

3
@Jonathan:不,不是BOM。BOM的可视(错误)表示。
BalusC,2015年

22

如果要在编辑器中搜索这些不可见字符并使它们可见,则可以使用正则表达式搜索非ASCII字符。尝试搜索[^\x00-\x7F]。在IntelliJ IDEA中测试。


2
我们不应该只说谢谢就发表评论-但这是如此宝贵。其他人需要知道这是他们在尝试从古怪的系统中清除文本时正在寻找的解决方案。当我说古怪时,我的意思是Microsoft 360免费网站垃圾!我对具有多年经验的正则表达式非常满意,但是当您遇到不知道如何定位的东西时,这并不重要。(我曾尝试与之合作get_html_translation_table(HTML_ENTITIES)ord()但仍然无法取胜),这终于给了我前进所需的动力!谢谢!!!
aequalsb '17

一些进一步的解释可以在stackoverflow.com/questions/9868796/…中找到。很高兴它对您有帮助@aequalsb
Micros

3
还可以与VSCode的搜索一起使用;确保使用“使用正则表达式搜索”切换。
詹姆斯·佩里

7

我遇到了同样的问题,然后自己解决了。我的HTML出现了这个奇怪的字符。

问题很可能是您的代码编辑器。我使用Espresso,有时会遇到类似问题。

要解决此问题,只需突出显示受影响的代码,然后转到菜单并单击“转换为数字实体”。您会看到该字符的数值出现;只需删除它,它就永远消失了。


我想我需要将该功能添加到Aptana / Eclipse中。谢谢!
凯尔2013年

3

ZERO WIDTH SPACE

我已将其用作“空”表单元格的内容。不过,不知道它在<script>标签中做什么。


3

当您使用jQuery通过.before()和.after()之类的DOM操作功能添加元素时,将插入零宽度字符。

我在文档末尾添加隐藏的模式对话框框时遇到了这个问题,然后发现“零宽度空间”将布局拧紧了,从而增加了多余的空间。

快速的解决方法是将其插入页脚之前,而不是之后。无论如何它是隐藏的。

我在jQuery中找不到执行此操作的任何内容:

https://github.com/jquery/jquery/blob/master/src/manipulation.js

因此,可能是添加它的浏览器。


2

我将这些字符显示在不需要的脚本中。我注意到了,因为它破坏了我的HTML / CSS视觉格式:它创建了一个新的文本框。

可以肯定的是,一个错误的编辑器正在添加它们...就我而言,我怀疑Mac的Komodo Edit。


我对此表示怀疑。当我查看.html()表示SP 2013中文本框的div时,在PC上的IE中显示。我相信这是由于Web应用程序显示数据的行为所致。在我的情况下,长度对于我来说应该是1,而应该是0。这是由于这个字符。
vapcguy

2

如果您在来源中看到这些信息,请注意,可能有人试图对文本文档进行指纹识别以揭示谁在泄露信息。也可能是通过使相同外观的信息逐字节级别不同来绕过垃圾邮件过滤器的尝试。

如果您有兴趣了解更多信息,请参阅有关缓解指纹的文章


0

在我将字符集设置为html文件头中的UTF-8之前,它一直显示一些奇怪的字符(?)。

<meta http-equiv="content-type" content="text/html; charset=UTF-8">

或对于HTML5:

<meta charset="UTF-8">

它现在是透明的,但是当我使用检查器时仍显示在html中。

从页面中删除所有脚本也不会将其删除。

我测试了chrome和IE。

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.