代码如下,如果将字节数组转换成char字符,传输中又遇到了‘?’取代无法打印的字符的情况,请教大神怎么解决?
namespace ConsoleApp1
{
class test
{
public int[] src { get; set; } = { 0x30, 0x40, 0x50, 0x60, 0xef, 0xff };
public string str = "";
}
class Program
{
static test A = new test();
static void Main(string[] args)
{
foreach(var t in A.src)
{
A.str += ((char)t).ToString(); ;
}
string tmp = JsonConvert.SerializeObject(A);
test B = JsonConvert.DeserializeObject<test>(tmp);
Console.WriteLine(tmp);
Console.ReadKey();
}
}
}
很正常,你要传非文本数据,不要这么产生string,而是应该做一个base64编码,或者传16进制字符串(类似"30405060efff"),对方再据此得到数组。