【问题解决】前台AJAX请求向Java后台传时+号变为空格—其他特殊字符解析出错也可参考解决
来源:互联网 发布:化妆品采购数据分析 编辑:程序博客网 时间:2024/06/06 11:22
转载请注明出处:http://blog.csdn.net/qq_26525215
本文源自【大学之旅_谙忆的博客】
问题是这样的,在前台输入:+++ 3个加号,然后提交到后台,在前台页面显示是没有问题的
在后台用req.getParameter(“comment”);获得内容,结果为3个空格,也就是无法获得+号,怎么解决呢。
第一种解决方案:
我们可以在前台获得字符串的时候,将”+”号转换为”%2B”.
comment=comment.replace(/\+/g,"%2B");// \为转义
我自己实践了一些,发现此方法可以!挺好的一种方法
第二种解决方案:
在我们服务器端执行的,也就是我们自己将空格转换为+号,但是,思考一下,就会发现此方法也不行,因为会将空格与+号混淆。
第三种解决方案:
也就是自己构建特殊字符,来写一个简单的传输协议,代替+号,
例如我们在前台的时候,如果有人输入+号,我们就把它转换为: “*jiahao;”,这个字符串可以自己定义,然后我们后台再解析成对应的+号。
前台JS:
comment=comment.replace(/\+/g,"*jiahao;");// \为转义
Java后台解析回去:
message = message.replace("*jiahao;", "+");//注意,这里如果用replaceAll,要注意正则表达式中的特殊字符转义!
此种方法可行,但是麻烦啊,还得自己转来转去的。
第四种解决方案:
前台JS使用encodeURIComponent函数。
comment=window.encodeURIComponent(comment);
其实这个函数也就是将+替换成了%2B
所以,如果遇到特殊符号了,用这个函数就可以了!
还有,encodeURI()这个函数解决不了+号这个特殊字符的传参变成空格的问题!
网上还有的教程地方把%2B写成了2b%,真的是让人挺无语了。
本文章由[谙忆]编写, 所有权利保留。
欢迎转载,分享是进步的源泉。
转载请注明出处:http://blog.csdn.net/qq_26525215
本文源自【大学之旅_谙忆的博客】
6 5
- 【问题解决】前台AJAX请求向Java后台传时+号变为空格—其他特殊字符解析出错也可参考解决
- ajax参数传递时含有特殊字符解决(否则只获取一部分字符,或者出错)
- java后台将前台传递的特殊字符转意下传递到前台
- get传参 有特殊字符 比如+ 会变为空格
- iOS xcode代码中空格变为特殊字符~解决方法
- 前台ajax请求后台实现下载
- java后台与jsp前台特殊字符处理(字符串编码与解码)
- xml中有特殊字符,导致解析时出错
- xstream解析xml时遇到特殊字符出错
- ajax将&特殊字符传到后台
- XML解析时候因为特殊字符&,<,",'出错
- XML解析时候因为特殊字符&,<,>,",'出错
- HTML特殊字符后台保存与前台显示问题
- SqlServer中文乱码(其他数据库也可参考)
- SQL过滤掉空格和其他特殊字符函数
- SQL过滤掉空格和其他特殊字符函数
- Ajax前台请求 以及 后台 Java 处理 (包含undefined的问题)
- java ssh 后台获取前台请求变量
- 图像预处理的一般步骤
- Backpropagation算法(反向传播算法)+cross-entropy cost(交叉熵代价函数)
- SimRank算法
- Netscope:一个支持Caffe的神经网络结构在线可视化工具
- java 串口数据问题:如何将byte转为无符号数
- 【问题解决】前台AJAX请求向Java后台传时+号变为空格—其他特殊字符解析出错也可参考解决
- 将对象类型转换为xml用到XStream.jar报错
- (HDU 5723)Abandoned country <最小生成树 + 树上所有两点之间的距离的期望> 多校训练1
- hdu—1081
- 238. Product of Array Except Self
- 编译QtE出现qbytearray.cpp:52:18: fatal error: zlib.h: No such file or directory
- 利用RFM模型做电商客户价值分析
- JavaScript深入理解之原型
- C++关键字(1)--const