Perlについての質問箱 58箱目

このエントリーをはてなブックマークに追加
463デフォルトの名無しさん
>>442
ありがとうございます、Decodeしたら二番目のチェックで「utf8」が表示されるようになりました!
でもまだ文字化けしてます・・・
ついでに"Wide character in print at"というエラーも出ました

そのエラーの原因がttp://d.hatena.ne.jp/BigFatCat/20080120/1200825243
「UTF8フラグ」かもしれないと書かれていたので、同サイトの解決方法ふたつ:
1. UTF8にエンコード $html = encode('utf-8', $html);
2. IO layerをUTF8にする binmode(STDOUT, ":utf8");
を両方試したのですが、
1ではUTF8フラグが消えてエラーも消えたものの、内容は文字化けしたままで、
2では書き出しの行に4つエラーが出ました:
Unicode surrogate U+DC52 is illegal in UTF-8 at D:/test.pl line 32.
Unicode surrogate U+DF3D is illegal in UTF-8 at D:/test.pl line 32.
Code point 0x1A9D38 is not Unicode, may not be portable at D:/test.pl line 32.
Code point 0x168324 is not Unicode, may not be portable at D:/test.pl line 32.
このエラーは探しても原因が分からなかったです・・・
Unicodeじゃない文字が混在しているということでしょうか・・・?


>>450
返信ありがとうございます!
さっそく $html = Encode::from_to($html, 'utf-32be', 'utf8'); で変換を試したのですが、
"Code point 0x24514514 is not Unicode, may not be portable at C:/Perl64/lib/Encode.pm line 195."
というようなエラーが大量に出てきました・・・
このエラーも「Unicodeじゃない」系なんですが、どういうことなんでしょうか・・・?