我有以下清单:
adrList = {0: ['Belgium'], 1: ["Fontaine l'Ev\\xc3\\xaaque"]}
print adrList
列表正确打印:
{0: ['Belgium'], 1: ["Fontaine l'Ev\\xc3\\xaaque"]}
但是,当我从位置1检索编码值时:
city = adrList[1][0]
print city
我得到以下结果:
Fontaine L'ev\xe3\xaaque
如您所见,两个双反斜杠变为常规反斜杠,'xc3'变为'xe3',一些大小写字符也变了
检索值后,编码已损坏,对其执行诸如json.dumps()之类的操作将崩溃。为什么它会改变,如何在不改变的情况下从字面上检索值
Edit:找到了问题的根源:string.capwords正在我试图将此值赋给的属性的setter中的值上运行,这将破坏编码
找到了错误的来源:string.capwords正在我试图将此值赋给的属性的setter上运行,这将破坏编码。这就解释了与我最初发布的示例代码的区别
Python2.7.6,我看不到类似的问题:
双反斜杠消失了(你还期望从
print
得到什么),但是其他的一切都保持不变,没有xc3
变为xe3
或者别的什么此外,我认为您实际上不需要双斜杠,它比:
相关问题 更多 >
编程相关推荐