我正在使用API,在响应中我得到了一个带有\ xf3的unicode。我想将它转换为字符串但我收到错误。 Python 2.7,顺便说一句。
编辑:
为了更清楚: 假设我有一个带有键的序列,包括带有'ó'的字符串
a = {'camión': 3}
我正在尝试检查带有“\ xf3”的unicode对象是否是dict的键。所以,例如,我尝试使用:
u"cami\xf3n" in a
返回False。如果我尝试打印那个unicode对象,我会得到“camión”,但我不能做一个简单的演员去那里(例外)。
所以,我问如何从你的“cami \ xf3n”(unicode)传递到“camión”(字符串)并且能够在之前传递条件
答案 0 :(得分:4)
您使用的是哪种编码?对于字符串和unicode,没有" cast",你想使用给定的编码进行编码(unicode到字符串)或解码(字符串到unicode)(提示:总是使用utf- 8是你最安全的赌注。)
一旦你知道你正在使用哪种编码,你只需要解密/编码,即:
Python 2.7.3 (default, Feb 27 2014, 19:58:35)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> bytekey = "éà" # using my default system encoding => utf-8
>>> a = {bytekey: 42}
>>> a
{'\xc3\xa9\xc3\xa0': 42}
>>> bytekey in a
True
>>> ukey = u"éà"
>>> ukey
u'\xe9\xe0'
>>> ukey in a
False
>>> ukey.encode("utf-8")
'\xc3\xa9\xc3\xa0'
>>> ukey.encode("utf-8") in a
True
>>>