导入CSV文件时,我正在尝试解决此问题。我尝试保存包含latin-1字符的字符串变量,当我尝试打印它们时,它会将其更改为编码。有什么办法可以保持编码吗?我只是想保持角色的原样,没有别的。
这是问题(从Django的管理外壳中可以看出
)>>> variable = "{'job_title': 'préventeur'}"
>>> variable
"{'job_title': 'pr\xc3\xa9venteur'}"
为什么Django或Python会自动更改字符串?我是否需要更改字符集或其他内容?
一切都会有所帮助。谢谢!
答案 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'}