Perlについての質問箱 43箱目at TECH
Perlについての質問箱 43箱目 - 暇つぶし2ch415:405
10/05/22 17:06:03
皆さんレスありがとうございます。

>>405はmeadowから打ち込んだ~は\x{301c}となり、
notepad等から打ち込んだ~は\x{ff5e}になる事が原因で表示に失敗していました。
\x{301c}はshift_jisでは表示に成功しcp932では失敗しました。
\x{ff5e}はcp932では表示に成功しshift_jisでは失敗しました。

どうやらeucとsjisの~はutf8の\x{301c}に対応していて
cp932の~はutf8の\x{ff5e}に対応しているようでした。
なので例えばeucの~をutf8に変換し、それをcp932に変換すると失敗するようです。

挙動がおかしいと思った元のプログラムではネット上にあるeucのページを取ってきて
utf8に変換し出力時にcp932に変換していたので上記の理由で文字化けしていた様です。
そこでeucをutf8に変換した際に\x{301c}を\x{ff5e}に変換するようにしました。
$utf8data =~ tr/\x{301c}/\x{ff5e}/;
そうしたところprintした際に"\x{301c}" does not map to cp932というエラーも出ず、無事~が表示されるようになりました。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch