首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Python中迭代UTF-8?

如何在Python中迭代UTF-8?
EN

Stack Overflow用户
提问于 2020-06-09 21:38:48
回答 1查看 701关注 0票数 1

如何在utf 8上迭代?

代码语言:javascript
运行
复制
import string

for character in string.printable[1:]:
    print (character)

大概对UTF-8也有类似的方法吧?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-09 22:21:19

大概对UTF-8有类似的方法吗?

您想知道哪些代码点可以在ascii范围之外打印吗?还是想要可打印字符的utf8编码?

要获取所有unicode的所有可打印代码点,请执行以下操作:

代码语言:javascript
运行
复制
unicode_max = 0x10ffff
printable_glyphs = [ chr(x) for x in range(0, unicode_max+1) if chr(x).isprintable() ]

如上所述,utf8是一种编码。这是将文本映射到特定字节的时候,以便其他程序可以共享数据。

内存中的文本不是utf8.每个字符/字形都有一个代码点。

转换为utf-8

代码语言:javascript
运行
复制
import unicodedata
monkey = unicodedata.lookup('monkey')

print(f"""
    glyph: {monkey}
    codepoint: Dec: {ord(monkey)}
    codepoint: Hex:  {hex(ord(monkey))}

    utf8: { monkey.encode('utf8', errors='strict') }
    utf16: { monkey.encode('utf16', errors='strict') }
    utf32: { monkey.encode('utf32', errors='strict') }
""")

产出:

代码语言:javascript
运行
复制
glyph: 
codepoint: Dec: 128018
codepoint: Hex:  0x1f412

 utf8: b'\xf0\x9f\x90\x92'
utf16: b'\xff\xfe=\xd8\x12\xdc'
utf32: b'\xff\xfe\x00\x00\x12\xf4\x01\x00'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62292312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档