问题:如何使用python3制作unicode字符串
我用这个:
u = unicode(text, 'utf-8')
但是Python 3出现了错误(或者…也许我只是忘了包含一些东西):
NameError: global name 'unicode' is not defined
谢谢。
回答 0
在Python3中,文字字符串默认为unicode。
假设这text
是一个bytes
对象,只需使用text.decode('utf-8')
unicode
的Python2等效str
于Python3,因此您还可以编写:
str(text, 'utf-8')
若你宁可。
回答 1
所有文本均为Unicode;但是编码的Unicode表示为二进制数据
如果您想确保输出的是utf-8,请参考以下页面中unicode 3.0版本的示例:
b'\x80abc'.decode("utf-8", "strict")
回答 2
作为一种解决方法,我一直在使用:
# Fix Python 2.x.
try:
UNICODE_EXISTS = bool(type(unicode))
except NameError:
unicode = lambda s: str(s)
回答 3
这就是我解决问题的方式,例如将\ uFE0F,\ u000A等字符转换为16字节编码的表情符号。
example = 'raw vegan chocolate cocoa pie w chocolate & vanilla cream\\uD83D\\uDE0D\\uD83D\\uDE0D\\u2764\\uFE0F Present Moment Caf\\u00E8 in St.Augustine\\u2764\\uFE0F\\u2764\\uFE0F '
import codecs
new_str = codecs.unicode_escape_decode(example)[0]
print(new_str)
>>> 'raw vegan chocolate cocoa pie w chocolate & vanilla cream\ud83d\ude0d\ud83d\ude0d❤️ Present Moment Cafè in St.Augustine❤️❤️ '
new_new_str = new_str.encode('utf-16', 'surrogatepass').decode('utf-16')
print(new_new_str)
>>> 'raw vegan chocolate cocoa pie w chocolate & vanilla cream😍😍❤️ Present Moment Cafè in St.Augustine❤️❤️ '
回答 4
在我使用多年的Python 2程序中,有以下一行:
ocd[i].namn=unicode(a[:b], 'utf-8')
这在Python 3中不起作用。
但是,该程序最终可用于:
ocd[i].namn=a[:b]
我不记得为什么将unicode放在首位,但是我认为这是因为该名称可以包含瑞典字母åäöÅÄÖ。但是,即使它们没有“ unicode”也可以工作。
回答 5
python 3.x中最简单的方法
text = "hi , I'm text"
text.encode('utf-8')
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。