如何完成UTF8文件的随机读取

goo*_*ate 5 c# unicode utf-8 utf-16 utf8-decode

我的理解是,对UTF8或UTF16编码文件的读取不一定是随机的,因为偶尔会有代理字节(例如在东方语言中使用).

如何使用.NET跳转到文件中的大致位置,并从半随机位置读取unicode文本?

我是否丢弃代理字节并等待分词继续阅读?如果是这样,在我开始解码之前,我应该等待的有效单词中断是什么?

Jar*_*dek 8

简单,UTF-8是自动同步的.
只需跳转到文件中的随机字节,然后跳过读取带有前导位的所有字节10(连续字节).没有前导的第一个字节10是正确的UFT-8字符的起始字节,您可以使用常规的UTF-8编码读取以下字节.