我有一个unicode变量,比如unicodeVar。例如,
u'\xea\xb1\xb8\xec\x8a\xa4\xeb\x8d\xb0\xec\x9d\xb4 \xeb\xaf\xb8\xeb\x8b\x88\xec\x95\xa8\xeb\xb2\x94 3\xec\xa7\x91' .
这就是我在控制台中简单地键入unicodavar时的样子。 实际上,这就是걸스데이미니앨범3집的表示。是 啊!是韩国语。显然,这个变量被错误地解码成unicode。 我从来没有在我的程序中使用Unicodavar。上面显示的结果是什么
'\xea\xb1\xb8\xec\x8a\xa4\xeb\x8d\xb0\xec\x9d\xb4 \xeb\xaf\xb8\xeb\x8b\x88\xec\x95\xa8\xeb\xb2\x94 3\xec\xa7\x91'.decode('utf-8')
如果我这样做:unicodeVar.decode('unicode-escape')
,结果是一个带有双斜杠的字符串。
比如'\\xea\\xb1\\xb8\\xec\\x8a\\xa4\\xeb\\x8d\\xb0\\xec\\x9d\\xb4 \\xeb\\xaf\\xb8\\xeb\\x8b\\x88\\xec\\x95\\xa8\\xeb\\xb2\\x94 3\\xec\\xa7\\x91'
问题是,如何从变量的角度得到正确的表示?也就是说只使用Unicodavar?在
使用
latin1
编码对字符串进行编码,以获得完整的字节。然后使用正确的编码对其进行解码(本例中,utf-8
):为什么会这样?在
程序(或库)的某些部分将utf-8编码的字节视为}对其进行解码。你最好把那部分换掉。在
^{pr2}$latin1
,使用latin1
而不是{如果您有一个在开始时没有
u
的字符串,不要在开头添加u
,只需使用utf-8编码对其进行解码,以获得unicode字符串:相关问题 更多 >
编程相关推荐