ajax/post/gb2312特殊字符出现乱码完美解决方法
来源:互联网 发布:log4j2 json 编辑:程序博客网 时间:2024/06/06 00:32
这里提供asp环境下采用gb2312编码,通过ajax技术的post发送方法提交数据时,对于特殊字符的乱码问题给予一个完美的解决方案——即发送数据利用encodeURIComponent和escape套接的方法——本实例经过测试,完全解决ajax关于在gb2312编码下post发送特殊符号所产生的乱码问题。
完整代码如下
服务端测试代码如下(以ASP为例)
测试结果
测试结果:测试结果表明,采用本方法完全解决了asp/ajax/post/gb2312特殊字符出现乱码问题。
另外在附带说明一下:
上面的方法中经测试符号“<”、“>”、“ ”(空格)、“回车换行”等符号是不被转换的,其它的符号,比如连接符(&)会转换为&;单引号(')会转换为';双引号(")会转换为"等等。一般通过采用textarea表单来提供输入容器,因此如果提交的信息中不支持html的话——其实在一般场合是不能支持html代码的,因此要encodeURIComponent(escape(msg))无法编码的字符进行手工编码。还好这类编码字符并不多,我测试的这些字符有:<、>、空格、回车换行等。因此对这些字符需要做如下处理:
测试一段代码
msg=msg.HtmlTextEncode();
msg=encodeURIComponent(escape(msg));//此行必须在上一行的下面
以上面代码测试符号<
执行完:msg=msg.HtmlTextEncode();后,msg的值为<
执行完:msg=encodeURIComponent(escape(msg)); msg的值为%2526lt%253B
在后台:Response.Write Unescape(msg)取得的值为<
存入数据库的值为:<
同理,如果在textarea框中输入
存入数据库的值是
读取数据库前台显示的值是
如果按下面顺序执行,同样测试符号<
执行完:msg=encodeURIComponent(escape(msg)); msg的值为%253C
执行完:msg=msg.HtmlTextEncode();后,msg的值为%253C
在后台:Response.Write Unescape(msg)取得的值为<
存入数据库的值为:<
同理,如果在textarea框中输入
存入数据库的值是
读取数据库前台显示的值是
- ajax/post/gb2312特殊字符出现乱码完美解决方法
- ajax/post/gb2312特殊字符出现乱码完美解决方法
- XML中特殊字符出现乱码的解决方法
- ajax+php $.post()中文乱码解决办法(utf-8 ---> gb2312)
- ajax post 提交中文java后台获取参数出现乱码解决方法
- ajax post 提交中文java后台获取参数出现乱码解决方法
- Jquery load()加载GB2312页面时出现乱码的解决方法
- 使用TFHpple解析GB2312网页出现乱码的解决方法
- AJAX利用javascript向后台传递中文字符出现乱码解决方法。
- AJAX 中文字符出现乱码现象
- ajax出现乱码的一种解决方法
- 特殊字符©读取和写入出现乱码解决
- Ajax传递的数据包含特殊字符时的解决方法
- 中文字符乱码:UTF8、GB2312
- XML 文件中出现 & ? ? 这类特殊字符的一种解决方法
- web.config文件中出现特殊字符的解决方法
- Ajax $.ajax() 提交数据出现中文乱码的时候解决方法
- AJAX在post中文时乱码的解决方法
- 使用VLC搭建组播服务器,在客户端进行播放
- 数据结构java版之《数组》
- android 菜单的创建
- fifo_write0.c
- Linux视频RHCE视频RHCSA视频系统运维培训教程
- ajax/post/gb2312特殊字符出现乱码完美解决方法
- 大数+递推
- HOG,LBP,HAAR特征的理解与认识
- 堆的自行实现和c++优先队列模板
- 学习Mac开发第八弹 学习NSTableView Cell Base
- 堆跟栈
- C# 类中隐藏基类方法和Partial
- 怎样才能很好的玩转 ArcGIS API for JS?
- 汽车加油_OJ