Python Django拉丁字符不起作用

Python Django拉丁字符不起作用,python,django,encoding,decoding,latin1,Python,Django,Encoding,Decoding,Latin1,我试图在导入CSV文件时解决此问题。我尝试保存一个包含拉丁1字符的字符串变量,当我尝试打印它们时,它会将其更改为编码。我能做些什么来保持编码吗?我只是想保持角色的原样,没有别的 这就是问题所在(从Django的ManageShell中可以看出) >>> variable = "{'job_title': 'préventeur'}" >>> variable "{'job_title': 'pr\xc3\xa9venteur'}" 为什么Django或Pyt

我试图在导入CSV文件时解决此问题。我尝试保存一个包含拉丁1字符的字符串变量,当我尝试打印它们时,它会将其更改为编码。我能做些什么来保持编码吗?我只是想保持角色的原样,没有别的

这就是问题所在(从Django的ManageShell中可以看出)

>>> variable = "{'job_title': 'préventeur'}"
>>> variable
"{'job_title': 'pr\xc3\xa9venteur'}"
为什么Django或Python会自动更改字符串?我必须更改字符集还是其他什么


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

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

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

>>> print 'pr\xc3\xa9venteur'.decode('utf8')
préventeur
不过,您确实想了解Python和Unicode:

  • 内德·巴奇尔德

  • 乔尔斯波尔斯基

字符已被编码为UTF-8,这非常好,因为如果您重视自己的理智,您不想坚持使用拉丁语-1。请转换为Unicode以获得最佳结果:

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

你试过用打印语句来代替吗

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

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

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

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

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

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

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