我有一个像“Tanım”这样的 unicode 字符串,它以某种方式编码为“Tan%u0131m”。我怎样才能把这个编码字符串转换回原来的unicode。
显然 urllib.unquote 不支持 unicode。
%uXXXX 是一个非标准编码方案尽管该实现仍然存在于 JavaScript 领域,但已被 w3c 拒绝。
更常见的技术似乎是对字符串进行 UTF-8 编码,然后使用 %XX 对结果字节进行 % 转义。该方案由 urllib.unquote 支持:
>>> urllib2.unquote("%0a")
'\n'
不幸的是,如果你真的need为了支持 %uXXXX,您可能需要使用自己的解码器。否则,简单地对你的 unicode 进行 UTF-8 编码,然后 % 转义生成的字节可能会更可取。
一个更完整的例子:
>>> u"Tanım"
u'Tan\u0131m'
>>> url = urllib.quote(u"Tanım".encode('utf8'))
>>> urllib.unquote(url).decode('utf8')
u'Tan\u0131m'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)