• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:UTF-8の「~」をsjisにencodeすると「?」になってしまいます)

UTF-8の「~」をsjisにencodeすると「?」になってしまいます

このQ&Aのポイント
  • XML::Simpleを使用してUTF-8のXMLをパースし、Shift_JISでエンコードした際に「~」が「?」になる問題についてアドバイスをお願いします。
  • HTMLでUTF-8の「あ~お」をShift_JISで表示する方法についてアドバイスをお願いします。
  • Shift_JISで表示するためには、UTF-8の「~」を適切にエンコードする必要があります。具体的な方法についてアドバイスをお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#43437
noname#43437
回答No.1

詳しいことは、ちょっと思い出せないのですが・・ これはUnicodeの悪いところで・・「~」に当てられてる文字は、実は二つあるのです。フォントを変えたり、拡大したりして、よく確認してみてください。「~」の右端がちょっと折れ曲がっている文字と、左右対称な文字と、二つあると思います。実際には・・Encodeで、sjisの「~」をUTF-8に変換してみるとわかります。 おそらく、右端が曲がってる方が、間違ったマッピングだと思うのですが・・encodeする前に、sjis互換の「~」に置換してやるといいと思います。

Orange-LL
質問者

お礼

アドバイスをいただき、あれこれ試してみたのですが、encode関数はYAMAMAYA様のおっしゃる『「~」の右端がちょっと折れ曲がっている文字』の方を「~」に変換しているようです。ややこしい・・。 ですので、UTF8の状態で「~」を『「~」の右端がちょっと折れ曲がっている文字』に置換してから、encodeするようにしたら「?」にならず「~」になりました。 ありがとうございました。

関連するQ&A

専門家に質問してみよう