Sha*_*ane 4 python utf-8 character-encoding
嗯,字符编码和解码有时让我很沮丧。
\n\n所以我们知道的u'\\u4f60\\u597d'是utf-8的编码\xe4\xbd\xa0\xe5\xa5\xbd,
>>> print hellolist\n[u'\\u4f60\\u597d']\n>>> print hellolist[0]\n\xe4\xbd\xa0\xe5\xa5\xbd\nRun Code Online (Sandbox Code Playgroud)\n\n现在我真正想从输出中获取或写入文件的是[u'\xe4\xbd\xa0\xe5\xa5\xbd'],但它[u'\\u4f60\\u597d']一直都是这样,那么你该怎么做呢?
你误会了。
\n\nu''在 python 中不是utf -8,它只是 Unicode(除了在 Windows 上的 Python <= 3.2 中,它是 Unicode utf-16)。
utf-8 是 Unicode 的一种编码,它必然是bytes.
此外,u'\xe4\xbd\xa0'和u'\\u4f60'是完全相同的东西。很简单,在Python2中,repr高位字符使用转义而不是原始值。
由于 Python2 即将停产,您应该开始认真考虑切换到 Python3。在 Python3 中跟踪所有这些要容易得多,因为只有一种字符串类型,并且当您使用.encode和时会更加清晰.decode。