![](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で質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) WordやExcelで英数字のみ半角または全角にしたい 6 2022/08/03 08:18
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- その他(プログラミング・Web制作) python質問 1 2023/08/14 11:54
- Excel(エクセル) 全角文字「ヴ」の半角文字「ヴ」への変換方法について 3 2022/11/05 12:07
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- PDF acrobatでwordファイルをpdfに変換すると文字化けする 3 2023/02/10 09:31
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- Visual Basic(VBA) VBA 「,」・空白・カタカナ等の複数条件のマクロ 2 2023/08/23 11:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Jcodeによるカタカナ→ひらがな変換
-
CSVファイルの中で、「 , 」カ...
-
マクロを使ってフォルダー内に...
-
エクセルにMicrosoft Barcode C...
-
LaTeXで半角カンマと全角カンマ...
-
複数のパワーポイントファイル...
-
カンマ区切り
-
住宅にカナを入力する際に丁目...
-
英数字のみ全角から半角に変換
-
プログラミングでは、半角括弧...
-
[VBScript]バイト長の判定
-
JPY ¥1,500.00は日本円でお幾ら?
-
xmlファイル内の文字列置換
-
カンマ区切りの数字をCSVフ...
-
全角英数字の必要性が理解できない
-
ひらがなから全角カタカナへの...
-
VBScript文字列をSJISからUTF8...
-
○文字目に文字挿入
-
.NET3.5におけるキーボードの「...
-
jcode.plについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
perl でエラー:Wide character...
-
jcode.plのかわり
-
MFCのコントロールにUTF-8の文...
-
【LaTeX】pBibTeXでのエラーの...
-
Perlで、文字の出現回数を調べ...
-
Cannot decode string with wid...
-
PerlでRSS取得 ~ 文字化け ~ ...
-
PHPの文字化けについて
-
HTML::Templateでutf-8のテンプ...
-
printfの書式指定での2バイト文...
-
sedやperlでの2バイト文字を含...
-
pythonの文字コードとファイル操作
-
デバッグ情報が文字化けする
-
JAVAでMySQLに接続すると日本語...
-
Java+MySQLで特殊文字(丸数字(...
-
オブジェクト? perlをオーバー...
-
WWW::Mechanizeの文字コードに...
-
UTF-16からUTF-8への変換
-
機種依存文字(株)を入力すると\...
-
XMLパラメータの取り込みに関して
おすすめ情報