关于C#:字节数组到字符串-更好的方法


Byte array to string - a better method

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
byte[] to string in c#

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

这对我很有用:

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

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


1
Encoding.UTF8.GetString(bytearr);

您需要知道正确的编码并使用它,UTF8只是一个例子。根据对您有用的东西,我猜您可能有UTF8或ASCII。


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

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

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


你可以只用System.Text.Encoding

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

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

您应该使用编码实例

来自MSDN

1
2
3
4
public UTF8Encoding(
    bool encoderShouldEmitUTF8Identifier,
    bool throwOnInvalidBytes
)

参数

编码器houldemitutf8标识符

类型:System.Boolean如果为true,则指定提供Unicode字节顺序标记;否则为false。

throwonInvalidBytes(throwonInvalidBytes)

类型:System.Boolean

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

所以用

1
2
3
   var encoding = new UTF8Encoding(false,true);

encoding.GetString (byteArr);