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

时间:2013-01-04 22:28:49

标签: c#

  

可能重复:
  byte[] to string in c#

我从流中读取了一个字节数组。我想将它转换为字符串。

这对我有用:

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

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

5 个答案:

答案 0 :(得分:13)

Encoding.UTF8.GetString(bytearr);

您需要知道正确的编码和使用,UTF8只是一个例子。基于对你有用的东西,我猜你要么有UTF8还是ASCII。

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:1)

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

答案 3 :(得分:1)

你可以使用System.Text.Encoding

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

答案 4 :(得分:0)

您应该使用编码实例

来自msdn

public UTF8Encoding(
    bool encoderShouldEmitUTF8Identifier,
    bool throwOnInvalidBytes
)

参数

encoderShouldEmitUTF8Identifier

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

throwOnInvalidBytes

类型:System.Boolean

如果指定在检测到无效编码时抛出异常,则为true;否则为false。否则,错误。

所以使用

   var encoding = new UTF8Encoding(false,true);

encoding.GetString (byteArr);