一个web程序,输入中文存入数据库的时候就变成问号。
web.config中的encoding等编码设置都是utf-8,由于web.config还要为其他程序服务,所以不能修改web.config。
如何通过程序将含有中文、英文和从word内拷贝的特殊字符存入数据库,并且读出来的时候能正常显示中英文和特殊字符那?
我想应该有一个编码函数和一个解码函数,但是找了半天也没找到合适的方法,到底该怎么写哪?请高手指教,谢谢
------解决方案--------------------------------------------------------
一个是使用system.Text.encoding来进行转换,另外,不知道你用的是什么DB,难道不支持unicode?如SQL2000,类型varchar是本地代码页,而nvarchar则是unicode,这样应该就不会有乱码问题。
------解决方案--------------------------------------------------------
Encoding enc = Encoding.GetEncoding(936); //这个表示取得gb2312的编码
Encoding utf8 = UTF8Encoding.UTF8; //这个表示取得UTF8编码
byte[] oldstr = enc.GetBytes(oldstring); //获得oldstring的gb2312编码字节组表示
byte[] newstr = Encoding.Convert(enc , utf8 , oldstr);
string newstring = utf8.GetString(newstr);
你试下行不行。
------解决方案--------------------------------------------------------
在数据库中查看存放中文信息字段的内容时显示的就是乱码吗?还是显示在浏览器上的时候变成乱码?跟踪一下你的程序,看看存储之前存放中文的DataRow中指定的值就已经是乱码,还是存入数据库之后变成了乱码。