我正在尝试从字节数组中读取以空字符结尾的字符串;该函数的参数是编码。
string ReadString(Encoding encoding)
例如,以下编码中的“foo”是:
UTF-32: 66 00 00 00 6f 00 00 00 6f 00 00 00
UTF-8: 66 6f 6f
UTF-7: 66 6f 6f 2b 41 41 41 2d
如果我将所有字节复制到一个数组中(读取到空终止符)并将该数组传递给encoding.GetString()
,它将不起作用,因为如果字符串是 UTF-32 编码的,我的算法将在第二个字节后到达“空终止符” .
所以我有一个双重问题:空终止符是编码的一部分吗?如果不是,我如何逐个字符地解码字符串并检查以下字节是否有空终止符?
提前致谢
(建议也值得赞赏)
编辑:
如果 "foo" 以 null 结尾并以 utf-32 编码,那会是什么?:
1. 66 00 00 00 6f 00 00 00 6f 00 00 00 00
2. 66 00 00 00 6f 00 00 00 6f 00 00 00 00 00 00 00