0

CSVファイルをインポートするときにこの問題を解決しようとしています。latin-1文字を含む文字列変数を保存しようとしましたが、それらを印刷しようとすると、エンコーディングに変更されます。エンコーディングを維持するために私にできることはありますか?キャラクターをそのままにしておきたいだけです。

これが問題です(Djangoの管理シェルから見た場合)

>>> variable = "{'job_title': 'préventeur'}"
>>> variable
"{'job_title': 'pr\xc3\xa9venteur'}"

DjangoまたはPythonが文字列を自動的に変更するのはなぜですか?キャラクターセットなどを変更する必要がありますか?

何でも役に立ちます。ありがとう!

4

3 に答える 3

1

端末はエンコードされた文字を入力しています。UTF-8を使用しているため、。と入力するとPythonは2バイトを受け取りますé

その場合、UTF-8からデコードします。

>>> print 'pr\xc3\xa9venteur'.decode('utf8')
préventeur

あなたは本当にPythonとUnicodeについて読みたいと思っています:

于 2013-02-06T01:54:57.273 に答える
0
"{'job_title': 'pr\xc3\xa9venteur'}"

文字はUTF-8にエンコードされています。これは、正気を重視する場合はLatin-1に固執したくないためです。最良の結果を得るには、Unicodeに変換します。

>>> '\xc3\xa9'.decode('UTF-8')
u'é'
于 2013-02-06T01:55:44.797 に答える
0

代わりにprintステートメントを使用してみましたか?

>>> variable = "{'job_title': 'préventeur'}"

>>> variable
"{'job_title': 'pr\x82venteur'}"

>>> repr(variable)
'"{\'job_title\': \'pr\\x82venteur\'}"'

>>> print variable
{'job_title': 'préventeur'}
于 2013-02-06T01:56:13.240 に答える