2016-07-16 11 views
0

Unicodeを扱うことは私の唯一の課題です。私は過去のプロジェクトで多くの問題を抱えていました。初心者のためのチュートリアルはとても便利です)。文字列をファイルに保存するときにPython 2.7でUnicodeを扱う

# -*- coding: utf-8 -*- 
string = "Åland Islands" 
with open("1.txt","w")as f: 
    f.write(string.decode("utf-8")) 

戻る:

return codecs.utf_8_decode(input, errors, True) 

UnicodeDecodeError: 'utf8' codec can't decode byte 0xc5 in position 0: invalid continuation byte

は、私は運でこれを解決するために、多くのエンコーディングをテストし

は、例えば、私はこのコードを持っています。

+0

文字列= U "オーランド諸島"、そしてf.write(s)は、 – chapelo

+0

を動作するはずですが 'ファイルを動作しませんでした。 2行目のC:\ Python27 \ learn \ unicode \ test.pyファイルの非ASCII文字「\ xc5」。ただし、エンコードは宣言されていません。詳細については、http://python.org/dev/peps/pep-0263/を参照してください。 – Ez0r

答えて

2

コーディングラインは、どのようにそれががバイトを解釈すべきかをPythonインタプリタに伝えます。実際にはにはのUTF-8エンコードされたテキストが含まれているわけではありません。実際、エラーメッセージは、ファイルがISO-8859エンコード(Latin-1)テキストとして保存されたことを示しています。 0xc5はÅのLatin-1エンコーディングです。 0xc3 0x85はUTF-8エンコーディングです。

編集者がファイルをUTF-8エンコードされたテキストとして実際に保存して、コーディングラインがインタープリタには存在しないようにする必要があります。 ":\ Python27 \学ぶ\ユニコードの\ test.py C" は、ライン2 にSyntaxError

+0

これは正しい(y) –

関連する問題