Python 3.1.3 私が必要とするのは、ConfigParserを使用してcp1251ファイルから辞書を読み取ることです。 私の例:その後ConfigParser(Python)のエンコーディング
config = configparser.ConfigParser()
config.optionxform = str
config.read("file.cfg")
DataStrings = config.items("DATA")
DataBase = dict()
for Dstr in DataStrings:
str1 = Dstr[0]
str2 = Dstr[1]
DataBase[str1] = str2
は、私は辞書応じて、いくつかのUTF-8のファイルにいくつかの単語を交換しようとしています。しかし、時にはうまくいかない場合もあります(例えば、 "改行の復帰"の記号を使って)。 私のファイルはUTF-8で、構成ファイル(辞書)はCP1251です。私はUTF-8に設定をデコードする必要があります。 私はこれをしようと試みてきました:
str1 = Dstr[0].encode('cp1251').decode('utf-8-sig')
しかし、エラー"'utf8' codec can't decode byte 0xcf in position 0"
が現れました。 .decode('','ignore')
を使用している場合 - ほとんどすべての設定ファイルが失われます。 どうすればよいですか?
'config.read(" file.cfg "、encoding =" cp1251 ")' – Goyo
いいですね、うまくいきません。すでに試しました。 Python3.xには "エンコーディング"属性がありません。エンコードは.open()のデフォルト設定から継承されます。 –
属性は何と関係していますか? 'ConfigParser.read'は、少なくとも[python 3.3](https://docs.python.org/3.3/library/configparser.html#configparser.ConfigParser.read)から 'encoding'キーワード引数を持っています。私はあなたが古いバージョンを使用していないことを願っています。 – Goyo