C#请教编码的问题,希望各位高手提点下!

来源:百度知道 编辑:UC知道 时间:2024/07/08 01:19:05
从国外获得的一个程序用C#编写的
但是运行起来后发现该程序不能支持中文!
程序分服务器和客户端,服务器启动正常以后使用客户端也没有什么问题!
但是当客户端输入中文的时候就会出现与服务端断开连接的问题!
我是初学者不知道这个问题应该怎么解决,估计应该是服务端编码不能支持中文!
如果要修改的话,一般应该从哪些字段入手呢?
请各位具体举例一些可能的影响到这个问题的代码~
比如说:
这样可以转换成系统默认的编码格式
System.Text.Encoding.Default.GetString([这里面必须是一个byte数组]);
这样可以转换成中文
System.Text.Encoding.GetEncoding("gb2312").GetString([这里面必须是一个byte数组])
但是我现在是入门都没有byte数组是什么都不知道~忽忽,最好能给我个举例的对比方法!
我照这上面的,查到C#源码里面有一句
string Data = System.Text.Encoding.ASCII.GetString(dataBuffer, 0, bytesReceived);
我就改成了
string Data = System.Text.Encoding.GetEncoding("gb2312").GetString(dataBuffer, 0, bytesReceived);
不知道这么改对不对~~

还是那句话,问题能解决够详细的我就追加100分一上~
如果是这句的话应该怎么改呢?
System.Text.ASCIIEncoding encoder = new ASCIIEncoding();

请问下第二位~涉及到Encoding是什么概念呢??
像这样的??
Requests.Append(Encoding.encodeVL64(requestIDs[i]) + DB.runRead("SELECT name FROM user

我建议你吧所有涉及到Encoding的地方都换成Unicode:System.Text.Encoding.GetEncoding("Unicode")。

你可以把字符串转换为byte[] 同样可以把byte[]转换为字符串

byte[] bts = Encoding.GetEncoding(936).GetBytes("中国人");
string strvalue = Encoding.GetEncoding(936).GetString(bts);

几种编码多试试看!