如何将字节数组转换为字符串?我需要获取原始内容,例如“96 = A8 = FC- = A8 = FE”,但当我使用说Encoding.UTF8.GetString(字节)时,它返回“96 - ”。谢谢!
答案 0 :(得分:10)
我认为你误解了字符串的内容。您最接近“原始内容”的是使用Encoding.Unicode
- .NET在内部使用UTF-16,因此转换为UTF-16实际上只是将内存的内容从字符串复制到字节数组。
现在,回到你的问题,你有什么数据,它代表和的意义是什么?文本数据是字符。二进制数据基本上是数字。你有在两者之间有一个映射,那就是编码。
我有article on Unicode可能对您有所帮助,但我强烈怀疑您需要退后一步才能取得进展。
如果您尝试将字节数组转换为字母表的字符串表示形式为十六进制,则可以使用BitConverter.ToString(byte[])
,但我不会将其描述为“原始”转换。
答案 1 :(得分:2)
您实际上需要每个字节的十六进制表示形式的字符串。问题How do you convert Byte Array to Hexadecimal String, and vice versa, in C#?将向您展示如何获取字符串,您可以更改该代码以添加所需的任何“in-between-bytes”格式。
答案 2 :(得分:1)
您可能希望使用ASCII编码,而不是UTF8。
答案 3 :(得分:0)
您也可以使用Convert.ToBase64CharArray方法
http://msdn.microsoft.com/en-us/library/system.convert.tobase64chararray(VS.80).aspx
Convert.ToBase64CharArray(Byte [],Int32,Int32,Char [],Int32)
转换8位无符号的子集 整数数组到等效子集 编码的Unicode字符数组 基数为64位。参数 将子集指定为偏移量 输入和输出数组,以及 输入数组中的元素数 转换。