Django拉丁字符不起作用

时间:2013-02-06 01:34:18

标签: python django encoding decoding latin1

导入CSV文件时,我正在尝试解决此问题。我尝试保存包含latin-1字符的字符串变量,当我尝试打印它们时,它会将其更改为编码。有什么办法可以保持编码吗?我只是想保持角色的原样,没有别的。

这是问题(从Django的管理外壳中可以看出

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

为什么Django或Python会自动更改字符串?我是否需要更改字符集或其他内容?

一切都会有所帮助。谢谢!

3 个答案:

答案 0 :(得分:1)

您的终端正在输入编码字符;您正在使用UTF-8,因此当您键入é时,Python会收到两个字节

在这种情况下从UTF-8解码:

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

你真的想要阅读Python和Unicode:

答案 1 :(得分:0)

"{'job_title': 'pr\xc3\xa9venteur'}"

这些字符已经编码为UTF-8,这非常好,因为如果你重视你的理智,你不想坚持使用Latin-1。转换为Unicode以获得最佳效果:

>>> '\xc3\xa9'.decode('UTF-8')
u'é'

答案 2 :(得分:0)

您是否尝试过使用print语句?

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

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

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

>>> print variable
{'job_title': 'préventeur'}