我如何安全地将字节数组转换为字符串c#在Linux上(mono下)

本文关键字:字符串 Linux mono 转换 字节数 何安全 安全 字节 数组 | 更新日期: 2023-09-27 18:16:31

目前我使用的是这样的:

private static ASCEncoding = new Encoding();
...
...

和我的方法:

...
public object some_method(object BinaryRequest)
{
 byte[] byteRequest = (byte[])BinaryRequest;
 string strRequest = ASCEncoding.GetString(byteRequest);
  ...
}

在Windows下检查时,某些字符与在Linux下检查时不同

9I9T (win)
98T  (linux)

我如何安全地将字节数组转换为字符串c#在Linux上(mono下)

当您在系统之间进行通信时,为您的文本使用特定的文档编码是一个好主意。对于用英语编写的文本(包括使用英语作为关键字/等的编程语言),UTF-8编码可能在编码表示中使用最少的总字节数。

byte[] byteRequest = (byte[])BinaryRequest;
string strRequest = Encoding.UTF8.GetString(byteRequest);

显然,要使用这个,您需要使用相同的编码生成您的请求。

string strRequest = ...
byte[] byteRequest = Encoding.UTF8.GetBytes(strRequest);
string stringValue = Encoding.Default.GetString(byteArray);