- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ファイル出力をUTF8NではなくてUTF8で行いたい)
PerlでShift-JISでファイル出力する際のUTF8Nの問題
このQ&Aのポイント
- PerlでShift-JISでファイル出力する際にUTF8Nで出力される問題が発生しています。
- UTF8NではなくUTF8でのファイル出力を希望しています。
- 解決方法を教えていただきたいです。
- みんなの回答 (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フラグは良くわからん
お礼
さっそくのご回答ありがとうございます。 おかげさまでひとつめの方法で無事解決することができました。 なぜそうなるのかはいまいち理解してませんが、おかげで助かりました。 ありがとうございました。