
初めて投稿させていただきます。
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ランキング
-
perlについての質問
-
住宅にカナを入力する際に丁目...
-
Excelについて質問です。 セル...
-
文字コードの%E3%80%とは何です...
-
全角/半角キーをSendkeys関数で...
-
CSVファイルの中で、「 , 」カ...
-
プログラミングでは、半角括弧...
-
16進数の文字列を文章に変える
-
携帯サイトは半角カナが当たり...
-
Excelの中に全角ひらがな、漢字...
-
全角英数字の必要性が理解できない
-
正規表現の質問です。
-
エクセル:セル「D列」に「○○○...
-
いまスマホからカードの申込み...
-
csvデータのダブルクォーテーシ...
-
ExcelVBA:KeyCode「半角/全角...
-
VisualStudioでタブやスペース...
-
VBA 文字に半角が含まれて...
-
CSVの定義
-
.NET3.5におけるキーボードの「...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
perl でエラー:Wide character...
-
MFCのコントロールにUTF-8の文...
-
【文字コード】外見上は全く同...
-
printfの書式指定での2バイト文...
-
【LaTeX】pBibTeXでのエラーの...
-
デバッグ情報が文字化けする
-
perlについての質問
-
漢字コードについて
-
カタカナ一覧表が知りたい
-
Jcode.pmでconvertできない
-
Jcodeによるカタカナ→ひらがな変換
-
オブジェクト? perlをオーバー...
-
jcode.plのかわり
-
HTML::Templateでutf-8のテンプ...
-
Perlにおけるパターンマッチ
-
UTF-16からUTF-8への変換
-
UTF8コードでのメール送信
-
EC-CUBEでの文字化け
-
sedやperlでの2バイト文字を含...
-
Python データの可視化
おすすめ情報