![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
初めて投稿させていただきます。
Perlで半角カタカナをひらがなに変換しているのですが、
以下のような文字列は文字化けが起こってしまいます。
オウシュウシ
イイオカ
コシオウ
アカサカ
キョウサカエ
オオスケ
オオキシ
キキョウ
ソウカシ
なんとなく法則がありそうなのですが、それがどういう理由なのかがわかりません。
たとえば、「アカサカ」は「鐔縁酋鐔誌酋」と化けてしまいます。
しかし、「アカサカチョウ」とした場合は化けません。
以下のようなコードを作成しています。
use Encode;
use Jcode;
$iline="文字列";
Encode::from_to( $iline, 'CP932', 'utf8');
my $str = Jcode->new($iline)->h2z->tr("ァ-ン", "ぁ-ん")->utf8;
$strをファイルに出力
といった感じです。
文字コードの関係が弱いので、何をどうしたら良いのか検討がつきません。
何か参考になることを教えていただければ幸いです。
Perlのバージョン5.8.5
サーバー Linux系
No.2ベストアンサー
- 回答日時:
Jcode使っているので、Encode::from_to は不要です。
それよりも、コンストラクタに$ilineの文字コードを渡していないため、文字コードの自動認識が動いてしまうのが問題です。自動認識は長い文章には有効ですが、単文には無効だと思った方が安全です。my $str = Jcode->new($iline, 'CP932')->h2z->tr("ァ-ン", "ぁ-ん")->utf8;
とすべきでしょう。
No.1
- 回答日時:
Jcode.pm は、
EUCの文字コードの半角カタカナを全角カタカナにしてるみたいです。
なので
# utf8->EUC-JP
Encode::from_to( $iline, 'CP932', 'EUC-JP');
にしてみてください。
参考URL:http://d.hatena.ne.jp/dayflower/20060530/1148951 …
ありがとうございます!
最終的にはUTF-8にしたかったので、
Encode::from_to( $iline, 'CP932', 'EUC-JP');
$iline = Jcode->new($iline)->h2z->tr("ァ-ン", "ぁ-ん")->utf8;
と修正して、文字化けがないことを確認いたしました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
perl でエラー:Wide character...
-
UTF-16からUTF-8への変換
-
CSVファイルの中で、「 , 」カ...
-
エクセルで数値を全角文字(カ...
-
EXCELからCSVにすると余計なカ...
-
WORDで改ページすると時々グレ...
-
COBOL・全角判定
-
住宅にカナを入力する際に丁目...
-
VBA 文字に半角が含まれて...
-
csvデータ ダブルクォーテ...
-
カンマ区切りの数字をCSVフ...
-
IEからEdgeへの移行に伴うIMEの...
-
xmlファイル内の文字列置換
-
全角数字を半角数字にする方法
-
英数字のみ全角から半角に変換
-
[VBA][Excel]クリップボードか...
-
正規表現で、全角文字を半角文...
-
データにカンマが入ったCSVデー...
-
[Perl] Pack関数について教えて...
-
EXCEL警告「置換対象のデータが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
perl でエラー:Wide character...
-
MFCのコントロールにUTF-8の文...
-
sedやperlでの2バイト文字を含...
-
【文字コード】外見上は全く同...
-
jcode.plのかわり
-
【LaTeX】pBibTeXでのエラーの...
-
WindowsでUTF-8のPerlスクリプ...
-
HTML::Templateでutf-8のテンプ...
-
{ブロック}の外でのみ use ut...
-
Jcodeによるカタカナ→ひらがな変換
-
EC-CUBEでの文字化け
-
Perlで、文字の出現回数を調べ...
-
CGIでメール送信で件名文字化け
-
UTF-16からUTF-8への変換
-
カタカナ一覧表が知りたい
-
Java+MySQLで特殊文字(丸数字(...
-
数字を1桁なら半角、2桁以上...
-
perl-cgiで1文字や2文字など短...
-
$obj->decode($bytes)って何?
-
デバッグ情報が文字化けする
おすすめ情報