2009-09-19 9 views
23

私はいくつかのPerlモジュールを使ってHTML文書を解析しています:HTML::TreeBuilderHTML::Elementです。 「HTML :: Element出力にこのA0文字が表示されるのはなぜですか?

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

私ができる:それは奇妙な文字としてHTML ::要素によって返されると予想されるタグの内容がちょうど あるたびに、いくつかの理由で、私の場合は、前に見たことがありません私は正規表現で検索すると、それを見つけることができませんでした。返された文書をANSIまたはUTF-8に変換すると、その文書は完全に消えます。私はHTML :: Elementドキュメントの中でそれに関する情報を見つけることもできませんでした。

この文字を検出してより有用な何か(例えばnull)と置き換えることができますか、これからどうすればこのような奇妙な文字を扱うべきですか?

+0

画像リンクは腐っています –

答えて

40

文字は"\xa0"(つまり160)です。これは の標準Unicode変換です。 (つまり、Unicodeの改行なしのスペースです。)好きな場合は、s/\xa0/ /gで削除することができます。

+0

s/\ xa0// g#...といくつかの文字を15にする... – aidan

8

文字が が何の略かであるnon-breaking spaceです:改行なしスペース(「」)、ワープロやデジタル組版で

(非破壊可能なスペースなしブレークスペースを、と呼ばれます(NBSP)、ハードスペース、または固定スペース)は、その位置で自動改行を防止するスペース文字です。 HTMLを含むいくつかのフォーマットでは、連続する空白文字が1つのスペースに崩壊するのを防ぎます。

HTMLでは、通常の空白文字と同じ幅の共通非改行スペースは、 または としてエンコードされます。 Unicodeでは、U+00A0としてエンコードされています。

関連する問題