给定字节流(生成器,文件等),如何读取单个utf-8
编码字符?
我可以通过滚动自己的utf-8
解码功能来解决这个问题,但是我不希望重新发明轮子,因为我确信此功能必须已经在其他地方用于解析utf-8
字符串。
包裹流中的TextIOWrapper
有encoding='utf8'
,然后调用.read(1)
就可以了。
这是假设您从与之BufferedIOBase
兼容的鸭子类型开始(即有一个read()
方法)。如果您具有生成器或迭代器,则可能需要调整接口。
例子:
from io import TextIOWrapper
with open('/path/to/file', 'rb') as f:
wf = TextIOWrapper(f, 'utf-8')
wf._CHUNK_SIZE = 1 # Implementation detail, may not work everywhere
wf.read(1) # gives next utf-8 encoded character
f.read(1) # gives next byte
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句