跳过unicode字符的最快方法是什么

时间:2011-09-28 17:39:43

标签: c# unicode file-io

我正在尝试使用UTF-16格式的文件中的某些字符。

我知道我想跳过多少个字符。我目前正在使用TextReader.ReadBlock命令来读取我想要跳过的所有字符的临时数组,但我相信设置位置会更快。我只是不知道如何确定新职位。

如果您想要跳过多少个字符,请知道跳到unicode文件中某个位置的最快方法是什么?

2 个答案:

答案 0 :(得分:0)

跳过一个块并不容易,需要相对定位。

如果你可以计算下一个块的开始(偏离文件的开头),它是可行的:

        int nextPos = ...;

        reader.DiscardBufferedData();
        reader.BaseStream.Position = nextPos;
        line = reader.ReadLine();

您可能需要调整计算,因为UTF-16文件可以有BOM(2个前导字节)。

答案 1 :(得分:-1)

考虑到这个os UTF-16而不是UTF-8(字符大小可以变化),每个字符有2个字节。所以要跳过x个字符,你必须跳过x * 2个字节。