我有一个字节[]数组,从一个文件加载,我碰巧知道包含UTF-8。
在一些调试代码中,我需要将其转换为字符串。是否有一个单行程序可以做到这一点?
在表面之下,它应该只是一个分配和一个memcopy,所以即使没有实现,也应该是可能的。
我有一个字节[]数组,从一个文件加载,我碰巧知道包含UTF-8。
在一些调试代码中,我需要将其转换为字符串。是否有一个单行程序可以做到这一点?
在表面之下,它应该只是一个分配和一个memcopy,所以即使没有实现,也应该是可能的。
当前回答
string result = ASCIIEncoding.UTF8.GetString(byteArray);
其他回答
string result = System.Text.Encoding.UTF8.GetString(byteArray);
还有一个类UnicodeEncoding,使用起来非常简单:
ByteConverter = new UnicodeEncoding();
string stringDataForEncoding = "My Secret Data!";
byte[] dataEncoded = ByteConverter.GetBytes(stringDataForEncoding);
Console.WriteLine("Data after decoding: {0}", ByteConverter.GetString(dataEncoded));
除了选择的答案,如果你使用。net 3.5或。net 3.5 CE,你必须指定解码的第一个字节的索引,以及解码的字节数:
string result = System.Text.Encoding.UTF8.GetString(byteArray, 0, byteArray.Length);
另外:
var byteStr = Convert.ToBase64String(bytes);
将字节[]转换为字符串似乎很简单,但任何一种编码都有可能把输出字符串弄乱。这个小函数只是工作,没有任何意想不到的结果:
private string ToString(byte[] bytes)
{
string response = string.Empty;
foreach (byte b in bytes)
response += (Char)b;
return response;
}