[英]Python 2.7 convert special characters into utf-8 byes
我有一些字符串需要替换为 URL 以访问不同的 JSON 文件。 我的问题是一些字符串有特殊字符,我只需要这些 UTF-8 字节,所以我可以正确找到 JSON 表。
一个例子:
# I have this string
a = 'code - Brasilândia'
#in the JSON url it appears as
'code%20-%20Brasil%C3%A2ndia'
我设法使用urllib.quote()
正确转换了空格,但它不会转换我需要的特殊字符。
print(urllib.quote('code - Brasilândia))
'code%20-%20Brasil%83ndia'
当我在 URL 中替换它时,我无法到达 JSON 表。 我设法在字符串u'code - Brasilândia'
之前使用 u 来完成这项工作,但这并没有解决我的问题,因为该字符串最终将成为用户输入,并且需要不断更改。 我尝试了几种方法,但我无法得到我需要的结果。
我专门为这个项目使用 python 2.7,我无法更改它。
有任何想法吗?
您可以尝试将字符串解码为 UTF-8,如果失败,则假定它是 Latin-1,或者您期望的任何 8 位编码。
try:
yourstring.decode('utf-8')
except UnicodeDecodeError:
yourstring = yourstring.decode('latin-1').encode('utf-8')
print(urllib.quote(yourstring))
...只要您可以建立正确的编码; 0x83似乎只对应于一些相当模糊的遗留编码,如代码页 437 和 850(这些是最不模糊的)。 另见https://tripleee.github.io/8bit/#83 (披露:链接网站是我的)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.