私は Windows 7 を実行しており、そのコンソールは Consolas フォントを使用するように構成されているため、Unicode 出力の可能性があります。コンソールで Unicode を読み取る機能は、Far Manager などのプログラムで何度も証明されています。キリル文字とドイツ語の äöü 文字の両方を、エンコードの切り替えなしで同じ文字列の同じコンソールで読み取ることができます。
次にPythonについて。
私は一生懸命努力していますが、出力に Unicode が表示されません。デフォルトでは、stdout は ASCII とキリル文字以外の文字を出力できませんprint(sys.stdout.encoding)
。cp866
次の結果が得られます。
print("Ля-ля äöüÄÖÜß")
UnicodeEncodeError: 'charmap' codec can't encode characters in position 6-12: character maps to <undefined>
print("Ля-ля äöüÄÖÜß".encode("utf-8"))
b'\xd0\x9b\xd1\x8f-\xd0\xbb\xd1\x8f \xc3\xa4\xc3\xb6\xc3\xbc\xc3\x84\xc3\x96\xc3\x9c\xc3\x9f'
OK、PYTHONIOENCODING
バッチファイルに環境変数を設定しました:
SET PYTHONIOENCODING=UTF-8
そして得た:
print(sys.stdout.encoding)
UTF-8
print("Ля-ля äöüÄÖÜß")
╨Ы╤П-╨╗╤П ├д├╢├╝├Д├Ц├Ь├Я
print("Ля-ля äöüÄÖÜß".encode("utf-8"))`
b'\xd0\x9b\xd1\x8f-\xd0\xbb\xd1\x8f \xc3\xa4\xc3\xb6\xc3\xbc\xc3\x84\xc3\x96\xc3\x9c\xc3\x9f'
何をすべきか?