字节数组到字符串-一个更好的方法

本文关键字:一个 更好 方法 数组 字节数 字符串 字节 | 更新日期: 2023-09-27 17:50:48

可能重复:
byte[]到c#中的字符串

我有一个从流中读取的字节数组。我想把它转换成字符串。

这对我有效:

var str= new string(bytearr.Select(x=>(char)x).ToArray());

但我觉得有更好的方法吗?有吗?

字节数组到字符串-一个更好的方法

Encoding.UTF8.GetString(bytearr);

您需要知道正确的编码并使用它,UTF8只是一个例子。根据你的工作原理,我猜你要么有UTF8,要么有ASCII。

您可以使用Encoding:中的内置函数

string myString = Encoding.UTF8.GetString(bytearr);

http://msdn.microsoft.com/en-us/library/aa332098(v=vs.71(.aspx

var str = System.Text.Encoding.UTF8.GetString(byte[])

您可以使用System.Text.Encoding

string result = Encoding.UTF8.GetString(bytearr);

您应该使用Encoding 的实例

来自msdn

public UTF8Encoding(
    bool encoderShouldEmitUTF8Identifier,
    bool throwOnInvalidBytes
)

参数

编码器应发出UTF8标识符

类型:System.Booleantrue以指定提供Unicode字节顺序标记;否则为false。

throwOnInvalidBytes

类型:System.布尔

true指定在检测到无效编码时引发异常;否则为false。

所以使用

   var encoding = new UTF8Encoding(false,true);
encoding.GetString (byteArr);