我有一个浏览器,它向我的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。
当前回答
可能有点过度,但当我在相同的文件中使用ascii和unicode时,重复解码可能是一种痛苦,这就是我使用的:
def make_unicode(inp):
if type(inp) != unicode:
inp = inp.decode('utf-8')
return inp
其他回答
在.py文件的顶部添加以下一行:
# -*- coding: utf-8 -*-
允许你在脚本中直接编码字符串,就像这样:
utfstr = "ボールト"
可能有点过度,但当我在相同的文件中使用ascii和unicode时,重复解码可能是一种痛苦,这就是我使用的:
def make_unicode(inp):
if type(inp) != unicode:
inp = inp.decode('utf-8')
return inp
city = 'Ribeir\xc3\xa3o Preto'
print city.decode('cp1252').encode('utf-8')
如果上面的方法不起作用,你也可以告诉Python忽略字符串中不能转换为utf-8的部分:
stringnamehere.decode('utf-8', 'ignore')
你还可以这样做:
from unidecode import unidecode
unidecode(yourStringtoDecode)