gpt4 book ai didi

C# ByteArray 到字符串的转换和返回

转载 作者:太空狗 更新时间:2023-10-30 00:03:16 26 4
gpt4 key购买 nike

我有一个 uint 值,我需要将其表示为 ByteArray 并转换为字符串。当我将字符串转换回字节数组时,我发现了不同的值。我使用的是标准 ASCII 转换器,所以我不明白为什么会得到不同的值。更清楚地说,这就是我正在做的事情:

byte[] bArray = BitConverter.GetBytes((uint)49694);
string test = System.Text.Encoding.ASCII.GetString(bArray);
byte[] result = Encoding.ASCII.GetBytes(test);

bytearray 结果与第一个不同:

bArray ->

[0x00000000]: 0x1e
[0x00000001]: 0xc2
[0x00000002]: 0x00
[0x00000003]: 0x00

结果 ->

[0x00000000]: 0x1e
[0x00000001]: 0x3f
[0x00000002]: 0x00
[0x00000003]: 0x00

请注意,字节 1 在两个数组中是不同的。

感谢您的支持。

问候

最佳答案

string test = System.Text.Encoding.ASCII.GetString(bArray);
byte[] result = Encoding.ASCII.GetBytes(test);

因为原始数据不是ASCIIEncoding.GetString 只有在您解码的数据是采用该编码的文本数据时才有意义。其他任何事情:你破坏了它。如果您想将 byte[] 存储为 string,则 base-n 是必需的 - 通常是 base-64,因为:它很方便(Convert .{To|From}Base64String), 和 b: 你可以把它放入 ASCII,所以你很少遇到代码页/编码问题。例如:

byte[] bArray = BitConverter.GetBytes((uint)49694);
string test = Convert.ToBase64String(bArray); // "HsIAAA=="
byte[] result = Convert.FromBase64String(test);

关于C# ByteArray 到字符串的转换和返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13344041/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com