场景;前端输入生僻字;e.g. 㙍、㮾;存入到数据库为乱码;㙍/…;。
解决;修改会存生僻字的字段;一般地址字段;的数据类型为nvarchar;在插入或更新sql里该字段值前加大写N;并且在前端页面注意编码解码。
样例;
1、数据库表设计里;修改字段类型为nvarchar(100)
2、db层代码 拼sql;
sSQL = “UPDATE tableName SET Address = N” & utdb.encodeS(sAddress) &; Where 。。。;
3、前端传参接收参数要编码解码;
输入后;提交表单时escape
$(;#btnUpdate;).click(function(){
$(;#Address;).val(escape($(;#Address;).val()));
....
}
接收时该参数时;解码
sAddress = Unescape(request(;Address;))
可能遇到的问题;
数据类型和sql改为以上所述后;从前端输入仍存入到数据库为乱码;此时一步步debug发现可能传参编码仍有问题。可能是escape和unescape漏了或使用错误。
我真的人傻了;卡了半天发现escape用错了。。想挖地洞钻下去。