![]() |
彷徨的机器人 · stringvar转变成str ...· 2 月前 · |
![]() |
小胡子的李子 · 人民日报丨南京加快构建智能制造新生态_央媒说 ...· 3 月前 · |
![]() |
淡定的香烟 · 为什么没有高手对迈克尔杰克逊的声音唱功做个详 ...· 6 月前 · |
![]() |
正直的香瓜 · 国家统计局工业司统计师于卫宁解读工业企业利润 ...· 7 月前 · |
![]() |
有腹肌的板栗 · iphone调试 - 随笔分类 - ...· 1 年前 · |
![]() |
大鼻子的骆驼 · 俄海军航母被评为最烂现役航母 ...· 1 年前 · |
我有一个浏览器,它将utf-8字符发送到我的Python服务器,但是当我从查询字符串中检索它时,Python返回的编码是ASCII。如何将普通字符串转换为utf-8?
注意:从web传递的字符串已经是UTF-8编码的,我只想让Python将其视为UTF-8而不是ASCII。
在Python 2中
>>> plain_string = "Hi!"
>>> unicode_string = u"Hi!"
>>> type(plain_string), type(unicode_string)
(<type 'str'>, <type 'unicode'>)
^这是字节字符串(plain_string)和unicode字符串之间的区别。
>>> s = "Hello!"
>>> u = unicode(s, "utf-8")
^转换为unicode并指定编码。
在Python 3中
所有字符串都是unicode。
unicode
函数不再存在。查看@Noumenon的答案
如果上述方法不起作用,您还可以告诉Python忽略字符串中无法转换为utf-8的部分:
stringnamehere.decode('utf-8', 'ignore')
将以下行添加到.py文件的顶部:
# -*- coding: utf-8 -*-
允许您直接在脚本中对字符串进行编码,如下所示:
utfstr = "ボールト"
可能有点夸张,但当我在同一文件中使用ascii和unicode时,重复解码可能是一种痛苦,以下是我使用的:
def make_unicode(inp):
if type(inp) != unicode:
inp = inp.decode('utf-8')
return inp
在Python 3.6中,它们没有内置的unicode()方法。默认情况下,字符串已存储为unicode,不需要进行转换。示例:
my_str = "\u221a25"
print(my_str)
>>> √25