目前我正在使用这样的东西:
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);