Почему этот символ A0 появляется в моем выводе HTML :: Element? - PullRequest
26 голосов
/ 19 сентября 2009

Я анализирую документ HTML с парой модулей Perl: HTML :: TreeBuilder и HTML :: Element . По какой-то причине всякий раз, когда содержимое тега просто  , что и следовало ожидать, HTML :: Element возвращает его как странный символ, которого я никогда раньше не видел:

альтернативный текст http://www.freeimagehosting.net/uploads/2acca201ab.jpg

Я не могу скопировать символ, поэтому не могу найти его в Google, не могу найти его в карте символов, и, как ни странно, когда я ищу с помощью регулярного выражения, \w находит его. Когда я конвертирую возвращенный документ в ANSI или UTF-8, он полностью исчезает. Я не смог найти никакой информации об этом в документации HTML :: Element.

Как я могу обнаружить и заменить этого персонажа чем-то более полезным, например null, и как мне поступить со странными персонажами, подобными этому, в будущем?

Ответы [ 2 ]

44 голосов
/ 19 сентября 2009

Символ "\xa0" (т.е. 160), который является стандартным переводом Unicode для  . (То есть это неразрывный пробел Unicode.) Вы можете удалить их с помощью s/\xa0/ /g, если хотите.

8 голосов
/ 19 сентября 2009

Символ неразрывный пробел , что   означает:

В текстовом редакторе и цифровом наборе текста неразрывный пробел ("") (также называемый пробелом без разрывов, неразрывным пробелом (NBSP), пробелом или фиксированным пробелом) - это пробел, который предотвращает автоматический разрыв строки в ее положении. В некоторых форматах, включая HTML, он также предотвращает сведение последовательных пробельных символов в один пробел.

В HTML общий неразрывный пробел, равный ширине обычного пробела, кодируется как или. В Юникоде это кодируется как U+00A0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...