一、中文乱码

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. elasticsearch 安装(基于java运行环境)

    解压安装包 [root@Aliyun resource]# tar -xvf elasticsearch-5.5.2.tar.gz 添加当前主机的普通账户 [root@Aliyun resource] ...

  2. 在Ubuntu16.04下面安装asterisk网络电话交换机服务器

    在Ubuntu下面需要安装 apt install libncurses5-dev uuid-dev libjansson-dev libxml2-dev libsqlite3-dev 去官网下载包h ...

  3. ZBench: 服务器一键测试脚本 / 自带结果导出vps网络测试

    zbench主站: https://blog.liyuans.com/archives/Zbench.html 脚本来自友链 主机博客,项目地址为 https://github.com/Functio ...

  4. 在 Element-UI 的 Table 组件上添加列拖拽效果

    Element-UI 的 Table组件很强大,但是我们的需求更强大... 简单粗暴的来一发效果图: 一.数据驱动 传统的拖动效果,都是基于通过 mousedown.mousemove.mouseup ...

  5. rtpproxy 配置

    1.下载rtpproxy并安装 cd /home/hi 下载rtpproxy最新版,比如rtpproxy-2.1.0.tar.gz tar –xzvf rtpproxy-2.1.0.tar.gz cd ...

  6. Python基础知识(五)

    # -*- coding: utf-8 -*-# @Time : 2018-12-25 19:31# @Author : 三斤春药# @Email : zhou_wanchun@qq.com# @Fi ...

  7. URL传值乱码

    JS端: &value=encodeURIComponent("value") C端: HttpUtility.UrlDecode(Request.Params[" ...

  8. 《马哥出品高薪linux运维教程》wingkeung学习笔记-linux基础入门课程

    计算机原理概念: 1.CPU和内存中的存储单元通信线路称为总线(BUS),总线是被指令和数据复用的,所以也称为前端总线. 2.计算机中计算频率的时间标准即晶体振荡器原理,精确计算时间长度,根据相同的时 ...

  9. 五大排序算法(Python)

    冒泡排序 冒泡排序通常是在CS入门课程中教的,因为它清楚地演示了排序是如何工作的,同时又简单易懂.冒泡排序步骤遍历列表并比较相邻的元素对.如果元素顺序错误,则交换它们.重复遍历列表未排序部分的元素,直 ...

  10. vue项目,npm install后,npm run dev报错问题

    报错: ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! metools@1.0.0 dev: `node build/dev-server.js` npm ...