3

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

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

这对我有用:

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

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

4

5 回答 5

14
Encoding.UTF8.GetString(bytearr);

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

于 2013-01-04T22:30:31.253 回答
2

您可以使用以下内置函数Encoding

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

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

于 2013-01-04T22:32:28.023 回答
1
var str = System.Text.Encoding.UTF8.GetString(byte[])
于 2013-01-04T22:31:09.857 回答
1

你可以用System.Text.Encoding

string result = Encoding.UTF8.GetString(bytearr);
于 2013-01-04T22:31:57.430 回答
0

您应该使用 Encoding 的实例

来自 msdn

public UTF8Encoding(
    bool encoderShouldEmitUTF8Identifier,
    bool throwOnInvalidBytes
)

参数

编码器ShouldEmitUTF8标识符

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

throwOnInvalidBytes

类型:System.Boolean

true 指定在检测到无效编码时抛出异常;否则为假。

所以使用

   var encoding = new UTF8Encoding(false,true);

encoding.GetString (byteArr);
于 2013-01-04T23:02:44.477 回答