ホーム > Uncategorized > [python3]マルチバイト文字を含む文字列を標準出力(stdout)に出力するだけなのにUnicodeEncodeError ‘ascii’ codec can’t encode charactersでorz。io.TextIOWrapperの設定が必要だと!?環境変数LANGの見落とし

[python3]マルチバイト文字を含む文字列を標準出力(stdout)に出力するだけなのにUnicodeEncodeError ‘ascii’ codec can’t encode charactersでorz。io.TextIOWrapperの設定が必要だと!?環境変数LANGの見落とし

現象

マルチバイトを含む文字列が表示されず、次のエラーがでる。

UnicodeEncodeError: 'ascii' codec can't encode characters in position ###-###: ordinal not in range(128)

対応

次をコピペせよ(UTF8で良ければ)

import io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')

現象の詳細

端末とかコンソール上で

print('あああ')

としたスクリプトをpython 3で実行するだけでUnicodeEncodingErrorでます。もーアホかと

補足

環境変数LANG等が適切に設定されていれば現象は発生しない。

結論

時間喰われた。

広告
カテゴリー:Uncategorized
  1. まだコメントはありません。
  1. No trackbacks yet.

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。