日期:2014-05-17  浏览次数:20424 次

sqlserver中文乱码问题
小弟用asp.net加sqlserver做网站,用服务器控件textbox之类的接收内容再插入数据库正常,但用html的<input type="text">接收内容,再用js传到ashx入库,此时数据库中的内容和读取的内容都是乱码了

改过<system.web>
字体类型为nvarchar
在sql语句中也加过N
还是不行,难道非要用服务器控件吗?

------解决方案--------------------
跟服务器控件没有关系,通常都是编码不统一造成的
------解决方案--------------------
如果还是乱码的话传入ashx,先进行编码,再解码看看


encodeURIComponent
------解决方案--------------------
统一编码。
1、在JS里对中文参数进行两次转码

var login_name = document.getElementById("loginname").value;
login_name = encodeURI(login_name);
login_name = encodeURI(login_name);
2、在服务器端对参数进行解码

String loginName = ParamUtil.getString(request, "login_name");
loginName = java.net.URLDecoder.decode(loginName,"UTF-8");

具体请见 http://blog.csdn.net/Seven_23/archive/2009/09/02/4510670.aspx
------解决方案--------------------
楼上正解!

如果想避免这些问题, 用jQuery的Ajax吧.

JavaScript现在jQuery几乎成为必备啊.
------解决方案--------------------
编码问题