- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:「数値文字参照への変換するソース」が知りたい)
数値文字参照への変換するソース
このQ&Aのポイント
- X-Smilesを用いてXFormsとは関係のないソースを読み込ませたところ、UTF-8で書かれた日本語がISO-8859-1で読み込まれてしまいました。
- XFormsで送られてきたデータをperlのcgiに送った際にエラーが発生しました。URLデコードを試みた結果、Invalid byte 1 of 1-byte UTF-8 sequenceというエラーが出ました。
- 数値文字参照に変換するためのソースを探しています。自力で変換する必要があるかもしれません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
$inline = 'あいうえお'; #UTF-8 @chars = (); $outline = ""; (@chars) = ($inline =~ m/([\x01-\x7f]|[\xc0-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf][\x80-\xbf])/xg); foreach $char (@chars) { if(length($char) == 1){ $outline .= $char; }elsif(length($char) == 2){ $unival = (vec($char, 0, 8) & 0x1f) * 0x40 + (vec($char, 1, 8) & 0x3f); $outline .= "\&#$unival;"; }elsif(length($char) == 3){ $unival = (vec($char, 0, 8) & 0x0f) * 0x1000 + (vec($char, 1, 8) & 0x3f) * 0x40 + (vec($char, 2, 8) & 0x3f); $outline .= "\&#$unival;"; } } print $outline; #結果:あいうえお
その他の回答 (1)
- Ethersky
- ベストアンサー率71% (168/235)
回答No.2
あり、ここって数値文字参照を文字に変換しちゃうのか・・・。 「結果:あいうえお」になっちゃってますが実際には あいうえお が返ってきます。(&は半角)
お礼
ご回答ありがとうございます。 うーん、数値文字参照自体はうまく動くのですが それでもX-Smilesには表示されません XFormsを使うのはMozillaにある程度実装されてからにします。