- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:perlで新規ファイルを作成できない(文字化け))
perlで新規ファイルを作成できない(文字化け)
このQ&Aのポイント
- Windows 7+ActivePerlでperlスクリプトを使用する際に、文字化けの問題が発生し新規ファイルの作成ができない。
- 普通にWindows 7上でファイルを作成することはできるが、Perl上では文字が正常に変換されず、代わりに?という文字が表示される。
- 質問者はPerl上でも正常なファイル作成を実現したいが、どのようにすれば良いかわからない。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
検索したら、こんなのがありました http://bokut.in/mt/2012/04/perl-win32-unicode.html
その他の回答 (1)
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.1
例えば Encode::from_to($title, "utf8", "cp932"); を Encode::from_to($title, "utf8", "cp932", Encode::FB_WARN); としたらどうなりますか?
質問者
お礼
コメントありがとうございます。 下記コードで実行してみました。 ----------------------- use strict; use warnings; my $title = "爱愛ai"; use Encode; # Encode::from_to($title, "utf8", "cp932"); Encode::from_to($title, "utf8", "cp932", Encode::FB_WARN); open(F,">$title"); close(F); open(F,">title_test.txt"); print F $title; close(F); ----------------------- まず、ファイルは作成されませんでした。 また、title_test.txtファイルについては、中身に何も書かれていませんでした。 また、use warnings;を追加して実行してみたところ(ない場合は、表示なし) "\x{7231}" does not map to cp932 at C:/Perl64/lib/Encode.pm line 197. というメッセージが表示されました。
お礼
素晴らしい回答ありがとうございます。 こんなモジュールがあったのですね! 同じ問題にぶち当たった人への参考 因みに、私自身は、他のサブルーチンでmoveを使う必要がありましたので、 こちらもとても役に立ちましたので、一応紹介しておきます。 ファイルのコピーや移動もこれでできるようです http://search.cpan.org/~xaicron/Win32-Unicode-0.34/lib/Win32/Unicode/File.pm