• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:binmode関数を2回繰り返すと結果が狂う?)

binmode関数を2回繰り返すと結果が狂う?

このQ&Aのポイント
  • Perlのbinmode関数を2回繰り返すと結果が狂う現象について質問です。
  • binmode関数を使ってエンコードを設定し、テキストを表示する際に2回同じコードを書くと結果が異なる現象に遭遇しました。
  • どうしてエンコードを2回設定すると結果が変わるのか、また、表示される文字列のダンプがどうやって得られるのかについての解説をお願いします。

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

  • ベストアンサー
  • Gotthold
  • ベストアンサー率47% (396/832)
回答No.1

たぶん、UTF8→CP932変換が二回実行されています。 00caは、834AをUTF8と見なしたときのコードポイントだと思います。 (834AはUTF8としては不正なオクテットシーケンスだけど、 細かいところ無視すればUTF8のU+00CAと解釈はできそう。)

TYWalker
質問者

お礼

なるほど!!! バッチリわかりました。 パイプのように効くんですね。 ちなみに binmode STDOUT, ':encoding(cp932)'; # 出力はCP932に変更 binmode STDOUT, ':utf8'; # 出力はUTF-8に変更 binmode STDOUT, ':encoding(cp932)'; # 出力はCP932に変更 でうまく行くかと思いきやダメでした ;;; ありがとうございました!!!

すると、全ての回答が全文表示されます。

関連するQ&A