UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 87: ordinal not in range(128)

706 ワード

今日、HTMLとデータベースがutf-8形式で符号化され、データベースに挿入されるのは正しいが、pythonのstrのデフォルトがascii符号化であり、unicode符号化と衝突し、このタイトルエラーが報告されるため、読み込み時にエラーが発生する.では、どのように解決すればいいのでしょうか.
ネット上の資料を集めることで、自分で何度も試して、問題は解決したと言えるので、コードに以下の文を加えるといいです.
import sys
reload(sys)
sys.setdefaultencoding('utf8')

詳細はこちらをご覧くださいhttp://docs.python.org/howto/unicode.html
これはpythonのunicodeコードAPIドキュメントで、英語の上手な学生は見て、理解を深めることができます.
簡単に言えばpythonのstrタイプとunicodeタイプを混同したからです
必要なのはasciiがstr->unicodeを必要とするコードではなく、符号化を実際に符号化することです.前にimport sys reload(sys)sysを書くことができます.setdefaultencoding(‘utf 8’)str符号化をasciiからutf 8(またはgb 18030)に変更する
注意Python 3.xはunicode strとbyte arrayを区別し、デフォルトの符号化はasciiではありません.