现向各位大虾讨教几个问题:背景:通过.Net的C#实现一个TCP传输的C/S结构。问题:
1)Server在linux平台上通过ASCII或GB2312对要传输的string进行编码,Client在Windows平台上接收来在Server端传送过来的字节数组,Client解码为String时应该采用用何种解码方式?2)如果Client要判断Server端传过来的字节数组的编码方式,因该如何判断呢?3)ASCII、GB2312、Unicode三者之间是什么关系呢?4)ASCII、GB2312、Unicode之间在不同的平台(windows、linux下有区别吗?)望各位大虾赐教!
你在linux做了unicode的编码,那么接受时也要用unicode编码。C#中的System.Text空间下的Encoding类提供了多种编码对象,你可以参考msdn。
编码在不同平台下是统一的。
问题2我也没注意过,楼下继续…………
所以你在server采用什麼編碼,在client端就采用什麼解碼就行了
冷风.net说的很清楚了
"GB18030"应该是兼容"GB2312"、"ASCII"的。所以我在Client端采用"GB18030"解码"ASCII"和"GB2312",这应该没有问题吧!还有,能不能从一个字节数组中获得该数组的编码方式呢?
MemoryStream ms = new MemoryStream();
//写字节数组
StreamRead sr = new StreamWrite(ms);
string s = sr.sr.ReadAll();//可以自动识别编码