为什么这个A0字符出现在我的HTML :: Element输出中?

时间:2009-09-19 17:38:22

标签: perl encoding

我正在使用几个Perl模块解析HTML文档:HTML::TreeBuilderHTML::Element。出于某种原因,只要标签的内容只是 ,这是预期的,HTML :: Element就会将其作为一个我以前从未见过的奇怪角色返回:

alt text http://www.freeimagehosting.net/uploads/2acca201ab.jpg

我无法复制角色,因此谷歌无法复制,无法在角色地图中找到它,奇怪的是,当我使用正则表达式搜索时,\w会找到它。当我将返回的文档转换为ANSI或UTF-8时,它会完全消失。我在HTML :: Element文档中找不到任何关于它的信息。

如何使用更有用的内容(如null)检测并替换此字符,以及如何在将来处理此类奇怪的字符?

2 个答案:

答案 0 :(得分:43)

字符为"\xa0"(即160),这是 的标准Unicode翻译。 (也就是说,它是Unicode的不间断空格。)如果您愿意,您应该可以使用s/\xa0/ /g删除它们。

答案 1 :(得分:8)

字符为non-breaking space 代表:

  

在文字处理和数字排版中,一个不间断的空间(“”)(也称为不间断空间,不可破坏空间(NBSP),硬空间或固定空间)是一个空间阻止其位置自动换行的字符。在某些格式(包括HTML)中,它还可以防止连续的空白字符折叠到单个空间中。

     

在HTML中,常见的不间断空格(与普通空格字符的宽度相同)编码为或。在Unicode中,它编码为U+00A0