我有一个浏览器,它向我的Python服务器发送utf-8字符,但当我从查询字符串中检索它时,Python返回的编码是ASCII。如何将普通字符串转换为utf-8?
注意:从web传递的字符串已经被UTF-8编码,我只是想让Python将其视为UTF-8而不是ASCII。
我有一个浏览器,它向我的Python服务器发送utf-8字符,但当我从查询字符串中检索它时,Python返回的编码是ASCII。如何将普通字符串转换为utf-8?
注意:从web传递的字符串已经被UTF-8编码,我只是想让Python将其视为UTF-8而不是ASCII。
当前回答
你可以使用python的标准库编解码器模块。
import codecs
codecs.decode(b'Decode me', 'utf-8')
其他回答
在.py文件的顶部添加以下一行:
# -*- coding: utf-8 -*-
允许你在脚本中直接编码字符串,就像这样:
utfstr = "ボールト"
使用ord()和unichar()进行翻译。 每个unicode字符都有一个相关联的数字,类似于索引。Python有几个方法可以在char和number之间转换。缺点是一个ñ的例子。希望能有所帮助。
>>> C = 'ñ'
>>> U = C.decode('utf8')
>>> U
u'\xf1'
>>> ord(U)
241
>>> unichr(241)
u'\xf1'
>>> print unichr(241).encode('utf8')
ñ
如果上面的方法不起作用,你也可以告诉Python忽略字符串中不能转换为utf-8的部分:
stringnamehere.decode('utf-8', 'ignore')
url被翻译成ASCII码,而对Python服务器来说,它只是一个Unicode字符串,例如: “T % C3%A9st % C3%A3o”
Python将“é”和“ã”理解为实际的%C3%A9和%C3%A3。
你可以像这样编码URL:
import urllib
url = "T%C3%A9st%C3%A3o"
print(urllib.parse.unquote(url))
>> Téstão
详情见https://www.adamsmith.haus/python/answers/how-to-decode-a-utf-8-url-in-python。
city = 'Ribeir\xc3\xa3o Preto'
print city.decode('cp1252').encode('utf-8')