• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:perlで新規ファイルを作成できない(文字化け))

perlで新規ファイルを作成できない(文字化け)

このQ&Aのポイント
  • Windows 7+ActivePerlでperlスクリプトを使用する際に、文字化けの問題が発生し新規ファイルの作成ができない。
  • 普通にWindows 7上でファイルを作成することはできるが、Perl上では文字が正常に変換されず、代わりに?という文字が表示される。
  • 質問者はPerl上でも正常なファイル作成を実現したいが、どのようにすれば良いかわからない。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.2

検索したら、こんなのがありました http://bokut.in/mt/2012/04/perl-win32-unicode.html

titlk
質問者

お礼

素晴らしい回答ありがとうございます。 こんなモジュールがあったのですね! 同じ問題にぶち当たった人への参考 因みに、私自身は、他のサブルーチンでmoveを使う必要がありましたので、 こちらもとても役に立ちましたので、一応紹介しておきます。 ファイルのコピーや移動もこれでできるようです http://search.cpan.org/~xaicron/Win32-Unicode-0.34/lib/Win32/Unicode/File.pm

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

例えば Encode::from_to($title, "utf8", "cp932"); を Encode::from_to($title, "utf8", "cp932", Encode::FB_WARN); としたらどうなりますか?

titlk
質問者

お礼

コメントありがとうございます。 下記コードで実行してみました。 ----------------------- 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. というメッセージが表示されました。

関連するQ&A