pythonでUnicodeEncodeError: ‘cp932’ codec can’t encode character

pythonは基本Unicodeなので悩むことはないと思ってもWindowsのコンソール出力はunicode対応してない(多分)ので、printなどの出力は日本語環境だとpythonは内部的にcp932に変換しなくてはならないと思われる。

以下のファイルをWindowsのコンソールからpythonで実行すると例外が発生する。

C++や.NETでもUnicodeはコンソールに出力できないようだ。

このファイルはsigつきutf8かUnicode(UTF16)で保存すればclは理解できる。
出力

.netのWriteLine()は??に置き換えてるのでpythonでもこのやり方でやってみる。

このやり方だと美しくないし、パイプ処理のときはおそらくutf8でもOKなのでもっとうまいやり方があるのかもしれない。

Leave a Reply

Your email address will not be published. Required fields are marked *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)