UnicodeEncodeErrorPythonで日本語の処理をしていると、UnicodeEncodeErrorに出くわすことがあるかと思います。私が今回遭遇したのは、print()で標準出力に表示しようとしたテキストに「!」マークが二つ並んだ文字、Unicodeでいうと\u203cが含まれていたために、次のようなエラーが表示され処理が止まってしまいました。再現するとこんな感じです。3.5.2では、sys.stdoutはio.TextIOWrapperというオブジェクトです。encoding='cp932'>このio.TextIOWrapperは、errorsという引数を渡すことでエンコードやデコード時のエラーの処理方法を指定することができます。公式ドキュメントにあるように、次のようなオプションがサポートされています。\N{...}エスケープシーケンスに置き換える他の形式も指定できるようですが、詳細はドキュメントを当たってください。不正な文字を'?'マークに置き換えるのであれば、標準出力(sys.stdio)を次のようなio.TextIOWrapperに置き換えてあげます。print('こんにちは\u203c')こんにちは?これで、最後の文字が'?'に置換して表示されました。ちなみに、backslashreplaceを指定するとこんな感じです。print('こんにちは\u203c')こんにちは\u203c元の文字の情報を保持しておきたいときは、backslashreplaceやxmlcharrefreplaceのほうが良いですね。アーカイブおすすめの本はてなブログをはじめよう!kanohkさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。