我在Python2.6中有两个引用的变量(使用urllib)。你知道吗
>>> y1
'J%C3%A9r%C3%A9my%20Toulalan'
>>> x1
'G%E9n%E9rateur'
使用下面的unquote格式,我得到了正确转换的第一个,而不是第二个。你知道吗
>>> print urllib.unquote(unicode(x1))
Générateur
>>> print urllib.unquote(unicode(y1))
Jérémy Toulalan
第二个在我使用
>>> print urllib.unquote(y1)
Jérémy Toulalan
我尝试对y1使用这样的try/exception方案,但它从来没有进入异常部分
try:
st=urllib.unquote(unicode(y)).encode("utf-8")
except:
st=urllib.unquote(y)
print st
知道我做错了什么吗?还是有更好的方法来区分x1和y1的区别?你知道吗
你有两种不同的编码。一个使用UTF-8,另一个使用拉丁语1。你知道吗
你必须使用
try
/except
并抱着最好的希望。解引号后解码值:引用的值不是Unicode字符串,不要试图以此威胁它们。它只是意外地在
x1
示例中起作用,因为前255个Unicode码点碰巧重用了拉丁-1标准。你知道吗如果这些字符串来自一个web数据源,您应该尝试找出何时使用了什么编码。例如,看看是否有带有
Content-Type
参数的charset
头,它可以为您提供使用什么的线索。否则,一些拉丁-1序列可能会被误认为UTF-8。你知道吗相关问题 更多 >
编程相关推荐