2

假设我有一个 Byte 数组,我用它Encoding.ASCII.GetString()来将字节转换为字符串。现在前几个字节将包含实际值,但其余字节的值都为0。获取字符串后,当我在 WPF 表单上显示它时,有一些不可打印的字符。如何删除这些不可打印的字符。一种方法是遍历数组,只考虑不包含0的索引,但我也可以使用 Unicode 编码,即Encoding.Unicode.GetString().

解决问题的最通用方法是什么。

4

2 回答 2

4
var buffer = new byte[] { 65, 66, 67, 68, 0, 0, 0, 0, 0 };
var length = buffer.TakeWhile(b => b != 0).Count();
var text = Encoding.UTF8.GetString(buffer, 0, length);
于 2011-06-02T08:19:51.210 回答
0

我只是在数组中找到第一个零,然后去掉后面的所有内容。

于 2011-06-02T08:20:53.620 回答