目前我正在使用这样的东西:

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)

最佳答案

在系统之间进行通信时,最好为文本使用特定且已记录的编码。对于用英语(包括使用英语作为关键字/等的编程语言)编写的文本,UTF-8编码可能使用编码表示形式中最少的字节总数。

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


显然,要使用它,您应该使用相同的编码来产生您的请求。

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

10-07 14:27