python - 如何在 Python 中迭代 UTF-8?
问题描述
如何迭代 utf 8?
import string
for character in string.printable[1:]:
print (character)
UTF-8 大概有类似的方法吗?
解决方案
UTF-8 大概有类似的方法吗?
您想知道哪些代码点可以在 ascii 范围之外打印吗?还是您想要可打印字符的 utf8 编码?
要获取所有 unicode 的所有可打印代码点:
unicode_max = 0x10ffff
printable_glyphs = [ chr(x) for x in range(0, unicode_max+1) if chr(x).isprintable() ]
如上所述,utf8 是一种编码。那时文本被映射到特定字节,以便其他程序可以共享数据。
内存中的文本不是 utf8。每个字符/字形都有一个代码点。
转换为 utf-8
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') }
""")
输出:
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'
推荐阅读
- java - Java 8 任何好的舍入算法来舍入 bigdecimal 并将总值返回为 100
- angular - 错误错误:找不到不同的支持对象“0.9”
- mysql - 如何遍历一个表并在 MySQL 中抓取一行?
- jenkins - Jenkins 中的多配置/矩阵构建管道
- php - Blade - 多个@yield/@section 时的(Sage 9)探测
- c++ - 如何将子类存储在向量中并覆盖父函数
- python - 从单独的 python 实例加载泡菜时,如何泡菜 python 对象并保留成员变量值?
- python - 如何在初始化变量的结构之间随机选择?
- node.js - TDS 7.0 (SQL Server 7) 的节点库
- bash - 如何从 ls 输出中检索文件名