- ベストアンサー
PerlでUTF8をEUCに変換
こんにちは、お力を貸して下さい。 OSX上で日本語のファイル名を取得し そのファイル名をeucに変換しようとすると 半濁音付きのカナが文字化けを起こしてしまうのです。 Web上で “$euc = Jcode($euc, 'utf8')->z2h->h2z->euc;” で、できないこともないみたいだったので、さっそくやってみたんですが… 変換したいファイル名は、「1ドキュメント」とします。 -------------------------------------- #!/usr/bin/perl use strict; use Jcode; my $path = "パスがはいっている"; my @files; opendir DIR, $path; @files = grep /^1/ && -f "$path/$_", readdir(DIR); closedir DIR; foreach (@files) { my $euc = $_; $euc = Jcode->new($euc, 'utf8')->z2h->h2z->euc; print "$euc\n"; } exit; -------------------------------------- 結果:1ト〓キュメント やっぱり文字化けしましたTT 新しい解決法がありましたら、よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
お礼
お力、ありがとうございます! そうなんですよね、どうして濁点を1文字にしてしまったのか… 私も調べて見たのですが、Ruby というのはオブジェクト指向言語なんですね。このRuby がPerl 内で動くのであれば、初めて聞く名前なのでいろいろ調べてからやってみたいと思います。 やはり、s 置換方法の方がいまのところの解決策なんでしょうね~;;