Perlコーディング初心者質問スレ Part 58
■ このスレッドは過去ログ倉庫に格納されています
0899nobodyさん
2009/02/07(土) 19:57:50ID:3N01Kgc2ググッて見つけた方法をいくつかテストしてみたのですが、全てダメでした。
例:「2ちゃんねる」を「2ちゃんねる」に変換したい。
・テストコードその1(正攻法)
my $txt = '2ちゃんねる';
$txt =~ tr/0−9/0-9/;
結果:文字化け 「0Q0ソ000ヒ0」
・テストコードその2(Jcodeを使うといいらしい?)
use Jcode;
my $txt = '2ちゃんねる';
my $txt2 = jcode($txt)->tr('0−9', '0-9');
結果:文字化け 「」イ、d网ヘ、」
・テストコードその3(tr('[0-9]', '[0-9]')はEUCでないとだめ。スクリプトがSJISの場合は変換必要らしい?)
use Jcode;
my $txt = '2ちゃんねる';
my $from = jcode('0−9')->euc;
my $to = jcode('[0-9]-')->euc;
my $txt2 = jcode($txt)->tr($from, $to);
結果:文字化け 「」イ、d网ヘ、」
・テストコードその4(スクリプトをEUCにしてjcode.pl使用)
require './jcode.pl';
my $txt = '2ちゃんねる';
jcode::tr(\$txt, '0-9', '0-9');
結果:「2」はOKだが、日本語が文字化け 「2、d网ヘ、」
どのようにしたら、うまく変換できるでしょうか。
■ このスレッドは過去ログ倉庫に格納されています