我有一个类似“Tanım”的Unicode字符串,以某种方式编码为“ Tan%u0131m”。我如何将这个编码后的字符串转换回原始的unicode。
显然urllib.unquote不支持unicode。
最佳答案
%uXXXX是一个non-standard encoding scheme,尽管实施仍继续存在于JavaScript领域,但已被w3c拒绝。
更常见的技术似乎是UTF-8对字符串进行编码,然后使用%XX使用%XX转义所得到的字节。 urllib.unquote支持此方案:
>>> urllib2.unquote("%0a")
'\n'
不幸的是,如果您确实需要支持%uXXXX,则可能必须安装自己的解码器。否则,简单地以UTF-8编码您的unicode,然后%转义所得到的字节,可能会更可取。
一个更完整的示例:
>>> u"Tanım"
u'Tan\u0131m'
>>> url = urllib.quote(u"Tanım".encode('utf8'))
>>> urllib.unquote(url).decode('utf8')
u'Tan\u0131m'
关于python - 如何在python中取消对urlencoded unicode字符串的引用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55138924/