2009-09-19 14 views
23

Piszę dokument HTML z kilkoma modułami Perla: HTML::TreeBuilder i HTML::Element. Z jakiegoś powodu, gdy zawartość tagu jest tylko  , którego należy się spodziewać, że zostanie zwrócony przez HTML :: Element jako dziwny charakter nigdy nie widział:Dlaczego ten znak A0 pojawia się w moim wyjściu HTML :: Element?

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

mogę” t skopiuj znak, więc nie może go znaleźć w Google, nie może znaleźć go na mapie znaków, a gdy go wyszukuję za pomocą wyrażenia regularnego, znajdzie je. Kiedy konwertuję zwracany dokument na ANSI lub UTF-8, znika on całkowicie. Nie mogłem znaleźć żadnych informacji na ten temat w dokumentacji HTML :: Element.

Jak mogę wykryć i zamienić tę postać na coś bardziej użytecznego, jak na przykład null i jak mam sobie radzić w przyszłości z takimi dziwnymi postaciami?

+0

Łącze do obrazu ma zgniłe –

Odpowiedz

40

Postać to "\xa0" (tj. 160), która jest standardowym tłumaczeniem Unicode dla  . (Oznacza to, że nie jest to normalna przestrzeń Unicode.) Jeśli chcesz, powinieneś być w stanie usunąć je za pomocą s/\xa0/ /g.

+0

s/\ xa0// g # ... i kilka innych znaków do zrobienia 15 ... – aidan

8

Postać jest non-breaking space czyli co stoi   dla:

W przetwarzania tekstu i cyfrowego składu, non-breaking space ("") (zwane także nie-przerwa przestrzeń, nie łamliwe przestrzeń (NBSP), twarda przestrzeń lub stała przestrzeń) to znak spacji, który zapobiega automatycznemu łamaniu linii w jej położeniu. W niektórych formatach, w tym w HTML, zapobiega on również zwijaniu się kolejnych białych znaków w pojedynczą spację.

W języku HTML, zwykła przestrzeń nierozdzielająca, która ma taką samą szerokość jak zwykły znak spacji, jest zakodowana jako   lub  . W standardzie Unicode jest kodowany jako U+00A0.

Powiązane problemy