将UTF16读为字节

时间:2017-05-29 11:23:39

标签: c# .net character-encoding

tl; dr 如何使用stream.ReadByte()阅读可变长度编码的文字?

长版:

我试图读取包含一些文本和一些二进制数据的文件。这使用像StreamReader这样的方法产生了问题,因此我读取字节并将它们转换为文本。只要文本是ASCII,这很简单,因为一个字节转换为一个字符。

但是当知道文本以UTF16编码时 - 字符的长度是可变的。那么我如何使用stream.ReadByte()并将其转换为UTF16?

1 个答案:

答案 0 :(得分:0)

感谢评论的帮助和对another question of mine的回答,我现在知道,因为所有文本都是行,所以我需要做的就是读取2个字节并检查它们是否是'\ n' 。 UTF16是这样的,它不会只是'\ n',只能作为代理对的一部分。