一、中文乱码

IE高版本(应该是9以上,不确定),在get方式请求中中文传到后台容易出现乱码问题。解决方法如下:

1、第一种,换成post方式

如果可以得话换成post方式就可以。如果采用表单或者ajax,都可以把数据放到表单域或者ajax的data中,采用post请求。

注:经测试,把数据放入form表单中,使用jQuery的serialize()方法获取要传输的数据,通过ajax的GET方法也不会有乱码问题。

2、第二种,使用encodeURI()

如果必须使用get方式将参数直接拼接在url中,可以是encodeURI()方法对中文参数进行编码。重要:需要使用两次encodeURI()方法。

如:action="www.baidu.com?name=encodeURI(encodeURI('小明‘))"

而后台拿到数据后同样需要解码,java代码:

  1. String name=request.getParameter("name");
  2. name= URLDecoder.decode(name, "UTF-8");

这样就可以正常使用了,当然还是第一种简单省事。

二、特殊字符

现在分布式项目很多,不同子项目之间经常需要来回传递url,有时候url中还有+,空格,/,?,%,#,&,=这些特殊字符,传递过程中容易丢失。解决的办法就是使用编码代替

+   URL 中+号表示空格                                 %2B   
空格URL中的空格可以用+号或者编码           %20 
/  分隔目录和子目录                                    %2F     
?   分隔实际的URL和参数                             %3F     
%   指定特殊字符                                          %25     
#   表示书签                                                 %23     
&   URL 中指定的参数间的分隔符                  %26     
=   URL 中指定参数的值                                %3D

PS:

js中:encodeURI()

var o={};

o.summaryTitle=encodeURI($("#summaryTitle").val());

$.ajax({

  url:url,

  data:o,

  success:function({

  });

});

action中:

String summaryType = request.getParameter("summaryType");

java.net.URLDecoder.decode(summaryTitle,"UTF-8")

java.net.URLDecoder.decode

  在项目中碰到了个比较奇怪的问题,就是我在本地使用java.net.URLDecoder.decode(ruleName)方法解码,没有问题,本地的页面也可以正常打开。但是当我把代码移植到测试环境中去的时候,却打不开页面,查看后台日志也没有报错信息。

  本地环境用的JDK1.6,tomcat用的7,测试环境JDK1.6 tomcat版本不明确

就纳闷了,因为这个方法已经提示过时了,就在考虑是不是这个问题导致的,应该有可以替代的方法,然后就去查看了下JDK的API,如下

  试着将代码中的java.net.URLDecoder.decode(ruleName)修改为java.net.URLDecoder.decode(ruleName, "UTF-8");然后编译,替换测试环境的代码,发现问题解决了。

  这应该就是JDK中有些过时的代码在低版本的tomcat中可能失效了,所以大家在以后的编程中一定要尽量避免过时方法的使用,以规避不必要的问题。

URL中文乱码及特殊字符处理的更多相关文章

  1. 一种另类的解决URL中文乱码问题--对中文进行加密、解密处理

    情景:在资源调度中,首先用户需要选择工作目标,然后跟据选择的工作目标不同而选择不同的账号和代理ip.处理过程如下:点击选择账号,在js中获取工作目标对工作目标进行两次编码(encodeURI(enco ...

  2. 解决URL中文乱码问题--对中文进行加密、解密处理

    解决URL中文乱码问题--对中文进行加密.解密处理 情景:在资源调度中,首先用户需要选择工作目标,然后跟据选择的工作目标不同而选择不同的账号和代理ip.处理过程如下:点击选择账号,在js中获取工作目标 ...

  3. 关于使用Tomcat搭建的Web项目,出现 URL 中文乱码的问题解析

    URL编码问题 问题描述 使用 Tomcat 开发一个 Java Web 项目的时候,相信大多数人都遇到过url出现中文乱码的情况,绝大多数人为了避免出现这种问题,所以设计 url 一般都会尽量设计成 ...

  4. java中文乱码解决之道(八)-----解决URL中文乱码问题

    我们主要通过两种形式提交向服务器发送请求:URL.表单.而表单形式一般都不会出现乱码问题,乱码问题主要是在URL上面.通过前面几篇博客的介绍我们知道URL向服务器发送请求编码过程实在是实在太混乱了.不 ...

  5. URL中文乱码处理总结(转)

    转自:http://www.cnblogs.com/xirongliu/archive/2012/09/06/2674196.html 问题:传递中文参数的时候,接收页面出现乱码问题?当跨域操作,两套 ...

  6. [转]Asp.Net url中文乱码

    一般有3种方法: 1.设置web.config文件 2.传递中文之前,将要传递的中文参数进行编码,在接收时再进行解码.  传递 string Name = "中文参数"; Resp ...

  7. 解决使用tomcat服务器发布web项目时出现URL中文乱码的问题

    打开Tomcat的安装路径 打开server.xml文件 在修改端口号的一行既是下图中位置添加 URIEncoding="UTF-8" 就能替换在用eclipse或者myeclip ...

  8. Tomcat中Url中文乱码解决办法

    引自:http://thoughtfly.iteye.com/blog/1533481 默认的tomcat容器如果直接使用get方式在url中传中文时,传到后台接收会是乱码. 乱码问题 原因: tom ...

  9. Tomcat的URL中文乱码解决以及传输优化

    默认的tomcat容器如果直接使用get方式在url中传中文时,传到后台接收会是乱码. 乱码问题 原因: tomcat默认的在url传输时是用iso8859-1编码. 解决方案一: 在使用get传输参 ...

随机推荐

  1. Java-Runoob-高级教程-实例-数组:13. Java 实例 – 数组交集

    ylbtech-Java-Runoob-高级教程-实例-数组:13. Java 实例 – 数组交集 1.返回顶部 1. Java 实例 - 数组交集  Java 实例 以下实例演示了如何使用 reta ...

  2. [转][C#]手写 Socket 服务端

    private void OpenSocket(int port) { Task.Factory.StartNew(() => { server = new Socket(AddressFami ...

  3. [UE4]利用取模运算达到循环遍历数组的目的

    X mod Y: 1.X<Y: X mod Y = X.计算记过永远都是等于X 2.X=Y:X mod Y = 0.重新回到数组第一个索引位置

  4. 知识点:MySQL表名不区分大小写的设置方法

    在用centox安装mysql后,把项目的数据库移植了过去,发现一些表的数据查不到,排查了一下问题,最后发现是表名的大小写不一致造成的. mysql在windows系统下安装好后,默认是对表名大小写不 ...

  5. 谷歌获取chromium

    转自:http://blog.sina.com.cn/s/blog_496be0db0102voit.html 先参看 http://www.chromium.org/developers/how-t ...

  6. Centos 7 下, 安装odoo 10

    1. Centos在虚拟机中, 最小化安装, 网络连接选择的是 桥接模式, 安装完成后, 是不能直接上网的, 输入root 和密码, 登录进去, 然后执行: [root@localhost ~]# v ...

  7. jQuery+html+css-自己写的分页

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. three.js学习:点光源+动画的实现

    与前几个教程类似,场景和相机等设置就不再重复声明了.这里只列出新学的内容. 1.圆柱体(圆锥体)的初始化 function initObject() { var geometry = new THRE ...

  9. js控制高度自适应,做到响应式

    //9宫格布局 var prints=window.innerHeight-($('.header').height()+40);//屏幕去掉(头部高度+头部padding) $('.weui-gri ...

  10. is 和 == 区别,id() ,回顾编码,encode(),decode()

    1. is 和 == 区别 id()函数 == 判断两边的值 is 判断内存地址例 s = "alex 是 大 xx"# abc = id(s) # 得到内存地址# print(a ...