2017-03-24 13 views
0

python 3.5でどのように優先するエンコーディングを変更できますか?私はchcp 65001-*- coding: utf-8 -*-sys.setdefaultencodingを試してみましたが、それでもpythonの好みのエンコーディングを変更する

File "D:\Program Files\Anaconda2\envs\py3\lib\encodings\cp1252.py", line 23, in decode 
return codecs.charmap_decode(input,self.errors,decoding_table)[0] 

UnicodeDecodeErrorことエンコーディングエラーを取得:それは呼び出すために続けて文字が

にマップ:「charmapの」コーデックは位置75でのバイトは0x90をデコードすることはできませんcp1252.pyむしろcp65001.pyより

+0

このエラーの原因となるPythonコードを表示できますか? –

+0

@ NilsWernerそれは私たちの会社のスクリプトの一部であるので長いコードです。漢字を含むファイルを読み込む機能です。 –

+0

そして、それを[最小限の作業例](https://en.wikipedia.org/wiki/Minimal_Working_Example)にリファクタリングしてみてください。 –

答えて

0
import sys 
#We don't have access to setdefaultencoding() right now 
reload(sys) #now we can access this function 
sys.setdefaultencoding('UTF8') 

これは間違いなくハックし、環境のデフォルトはUTF8に設定してからちょうど使用したされ、これを達成するためのより具体的かつ恒久的な方法です。エンコードおよびデコード機能

+0

"これがうまくいく"という理由についていくつかの情報を提供できますか?あなたの答えを改善してください! :) – Ferrrmolina

+0

私が知る限り、2つのものがあります。 1. setdefaultencodingはpreferencodingとは異なります。 2. setdefaultencodingはpy3.5 +ではサポートされなくなりました。 –

関連する問題