2013/06/08(土) [n年前の日記]
#2 [perl] ActivePerlをアップデートしたら「〜」(波ダッシュ)が文字化けするようになってしまった
先日、ActivePerl をアップデートした記憶があるのだけど。どうもその関係で、「〜」(波ダッシュ?)が文字化けするようになってしまったようで。普段の作業を少しだけ楽にしようと書いていた手持ちのスクリプトが怪しい動作に。どうしたもんか。
とりあえず試行錯誤して以下のような感じに。環境は Windows7 x64 + ActivePerl 5.14.4 build 1405。
とりあえず試行錯誤して以下のような感じに。環境は Windows7 x64 + ActivePerl 5.14.4 build 1405。
- ファイルの最初のほうに use utf8; を書いて、UTF8 (UTF8Nに非ず) で保存。
- Tkx::clipboard を使わずに、Win32::Clipboard を使うように変更。
- クリップボードから文字列を取得した後、$str = decode( 'cp932', $str); をすることにした。
- Lingua::JA::Regular::Unicode を使って、全角英数字を半角英数字に変換。 alnum_z2h() を使う。
- $str =~ tr/\!\$\%\&\'/!$%&’/; のような形で、文字変換。
- クリップボードに送る前に encode。$clip->Set(encode('cp932', $str));
[ ツッコむ ]
以上です。