• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ファイル出力をUTF8NではなくてUTF8で行いたい)

PerlでShift-JISでファイル出力する際のUTF8Nの問題

このQ&Aのポイント
  • PerlでShift-JISでファイル出力する際にUTF8Nで出力される問題が発生しています。
  • UTF8NではなくUTF8でのファイル出力を希望しています。
  • 解決方法を教えていただきたいです。

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

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

binmode OUT をしないのなら #!/usr/bin/perl use strict; use encoding 'shiftjis'; my $hoge = 'ほげ'; open OUT, '>:encoding(utf8)', 'file.txt' or die $!; my $bom = "\x{feff}"; #BOM print OUT $bom; print OUT $hoge, "\n"; close OUT; で警告なしにBOMをつけてファイルを作れます。 どうしても binmodeをする必要があるのなら #!/usr/bin/perl use strict; use encoding 'shiftjis'; my $hoge = 'ほげ'; open OUT, '>', 'file.txt' or die $!; binmode OUT; my $bom = "\x{feff}"; #BOM utf8::encode($bom); print OUT $bom; utf8::encode($hoge); print OUT $hoge, "\n"; close OUT; こんなところですか? #utf-8フラグは良くわからん

oo40
質問者

お礼

さっそくのご回答ありがとうございます。 おかげさまでひとつめの方法で無事解決することができました。 なぜそうなるのかはいまいち理解してませんが、おかげで助かりました。 ありがとうございました。

関連するQ&A