.net 如何将byte[]转换为String,不需要编码,也不会丢失数据

9rygscc1  于 2023-05-19  发布在  .NET
关注(0)|答案(3)|浏览(174)

我有一个字节数组。每个字节的8位值是我想要的字符串中的字符。您可以将我的8位值视为ASCII,ANSI,UTF-8,ISO-8859-1,每日温度读数,距离线上一点的距离(以英寸为单位)或任何您想要的值。这无关紧要
等我做完了在我的字符串中位置N处的字符应该与位置N处的字节具有相同的值。也就是说,高阶8位应该是0,低阶8位应该与源字节相同。
我使用什么编码简单地将字节Map到字符而不做任何更改?

chhkpiq4

chhkpiq41#

对于这个需求,我会省去编码,因为我不知道它们做什么的细节,只是自己转换字节。

string Convert(byte[] data)
{
    char[] characters = data.Select(b => (char)b).ToArray();
    return new string(characters);
}
hgqdbh6s

hgqdbh6s2#

您所询问的编码称为“ISO/IEC 8859-1”。
如果您使用的是.NET 5.0或更高版本,标准库将在Encoding.Latin1属性中提供该编码。
如果您使用的是旧的运行时,请使用代码页参数1252调用GetEncoding方法

r7knjye2

r7knjye23#

如何使用extended ASCII

Encoding.GetEncoding(437).GetString(bytes);

相关问题