`

tomcat url 参数编码的问题

    博客分类:
  • java
阅读更多

 通常在URL大家会传中文参数到服务器 在服务器接收是乱码 通常最简单的解决方法是通过转成utf-8+escape形式 %E4%B8%AD%E6%96%87 google也是采用此方法
这样的方法最简单最快速.让tomcat接受这样参数是不需要手动转码的,tomcat自动会识别,当在request得到参数的时候就是中文.

先说说配置的方法.

找到tomcat server.xml 查找Connector关键字,加上URIEncoding="UTF-8"就可以了.
下边在说说如果转成utf-8+escape形式.

1.jsp情况下可以使用如下.

www.x.com/sub.jsp?name=<%=com.liferay.util.JS.encodeURIComponent("中文")%>

com.liferay.util.JS这个包自己下,我也忘记了.自己写一个也可以.

 

这里提供一下源代码

 

public static final String ENCODING = "UTF-8";   
public static String encodeURIComponent(String s) {
	return encodeURIComponent(s, ENCODING);
}
public static String encodeURIComponent(String s, String encoding) {
	// Encode URL
	try {
	    s = URLEncoder.encode(s, encoding);
	} catch (Exception e) {
	}
	s = s.replaceAll("\\+","%20");
	s = s.replaceAll("%2B","+");
	return s;
}
public static String decodeURIComponent(String s) {
	return decodeURIComponent(s, ENCODING);
}
public static String decodeURIComponent(String s, String encoding) {
	s = s.replaceAll("%u[0-9a-fA-F]{4}", "");
	s = s.replaceAll("\\+","%2B");
	s = s.replaceAll("%20","+");
	try {
	    s = URLDecoder.decode(s, encoding);
	} catch (Exception e) {
	}
	return s;
}

 

 

2.javascript情况下,这种更加简单.

 

alert("www.x.com/sub.jsp?name="+encodeURIComponent("中文"));

 

 

分享到:
评论

相关推荐

    tomcat值乱码解决

    某些通过URL来传送、值为汉字的参数,在页面中显示的是乱码,但是在本地开发环境是正常显示的。排除的因素当然就是服务器的设置不当了,但具体是那些原因呢?一般我们所装的linux服务器,是中文版的,所以系统环境的...

    SpringBoot2.1.3修改tomcat参数支持请求特殊符号问题

    最近遇到一个问题,比如GET请求中,key,value中带有特殊符号,请求会报错。接下来通过本文给大家分享解决SpringBoot2.1.3修改tomcat参数支持请求特殊符号 ,需要的朋友可以参考下

    html 中文乱码 HTML超链接中文乱码问题分析及解决方法

    如果直接拼接,传到后台Action的参数对象中后取出会是乱码,需要编码后再拼接到URL上。 解决方法是在Action中添加一个成员变量,保存编码后的中文参数。在vm页面渲染时取出这个变量值,再拼接超链接。 在这里碰到的...

    Android编程向服务器发送请求时出现中文乱码问题的解决方法

    我们在andorid项目中通过get方式向服务器发送请求,其中url参数带有中文,将会产生乱码,乱码产生的原因有两种: 1、 在提交参数时,没有对中文参数进行URL编码 2、 Tomcat服务器默认采用的是IOS8859-1编码(不支持...

    fckeditor(jsp版)

    使用Tomcat应用服务器时,为了更好的支持URL地址中的中文参数问题.需要在tomcat进行如下设置: 需要修改server.xml文件的如下行: maxThreads="150" minSpareThreads="25" maxSpareThreads="75" ...

    pager-taglib

    这个包经过重新编译,编译版本为1.5,默认编码格式修改为utf-8,你也可以设置charset参数,当然你需要在tomcat server.xml中设置URIEncoding="your wanna encoding...

    Servlet与JSP核心编程第2版

    9.5 对发往客户的url进行编码 9.6 显示客户访问计数的servlet 9.7 累计用户数据的列表 9.8 拥有购物车和会话跟踪功能的在线商店 第ii部分 jsp技术 第10章 jsp技术概述 10.1 对jsp的需求 10.2 jsp的好处...

    fckedit编辑器

    查找资料:TOMCAT 链接参数有中文时,乱码解决方法 http://hi.baidu.com/jadestone/blog/item/7564deefc9192d36acafd5be.html 修改tomcat-home/conf/server.xml 方法一: 在两处地方加上URIEncoding="utf-8": ...

    深入浅出Hibernate源码

    (假若您希望使用其它用户名如root,您需要修改hibernate的数据库配置中的连接参数——位于hibernate.cfg.xml中,以及创建数据库表时的连接参数——位于build.xml中。) 7, 确认ant安装正确. ant可以在此下载: ...

    apache-commons源码及jar文件

    包括一些语音编码器, Hex, Base64, 以及URL encoder. Collections Commons-Collections 提供一个类包来扩展和增加标准的 Java Collection框架 Configuration Commons-Configuration 工具对各种各式的配置和参考...

    java web 视频、电子书、源码(李兴华老师出版)

    5.4.2、设置文件编码 5.4.3、错误页的设置 5.4.4、数据库连接操作 5.5、包含指令 5.5.1、静态包含 5.5.2、动态包含 5.6、跳转指令 5.7、实例操作:用户登陆程序实现(JSP + JDBC实现) 5.7.1、创建数据库表 ...

    JSP实用技巧集合,jsp编程的一些小技巧总结

    79. JSP字符编码问题及转换大全? 80. 使用过滤器设置请求编码? 81. JSP或Servlet调用DLL? 82. 在JSP中包含Applet(时钟)? 83. 在Applet中显示一个html页面? 84. 使session强制失效85. iFreme编辑框使用? 86. Applet与...

    jpivot学习总结.doc

    这个动作还依赖于该标签的 sessionParam 属性,如果该属性存在,那么参数值将在页面显示之前写到 com.tonbeller.jpivot.param.SessionParamPool 当中,如果不存在该属性,参数将会被编码到超链接当中。 例如: ...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 上

    5.4.2、设置文件编码 5.4.3、错误页的设置 5.4.4、数据库连接操作 5.5、包含指令 5.5.1、静态包含 5.5.2、动态包含 5.6、跳转指令 5.7、实例操作:用户登陆程序实现(JSP + JDBC实现) 5.7.1、创建数据库表 ...

    MLDN+李兴华+Java+Web开发实战经典.part3.rar )

    5.4.2、设置文件编码 5.4.3、错误页的设置 5.4.4、数据库连接操作 5.5、包含指令 5.5.1、静态包含 5.5.2、动态包含 5.6、跳转指令 5.7、实例操作:用户登陆程序实现(JSP + JDBC实现) 5.7.1、创建数据库表 ...

    李兴华 java_web开发实战经典 源码 完整版收集共享

    5.4.2、设置文件编码 5.4.3、错误页的设置 5.4.4、数据库连接操作 5.5、包含指令 5.5.1、静态包含 5.5.2、动态包含 5.6、跳转指令 5.7、实例操作:用户登陆程序实现(JSP + JDBC实现) 5.7.1、创建数据库表 ...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 下

    5.4.2、设置文件编码 5.4.3、错误页的设置 5.4.4、数据库连接操作 5.5、包含指令 5.5.1、静态包含 5.5.2、动态包含 5.6、跳转指令 5.7、实例操作:用户登陆程序实现(JSP + JDBC实现) 5.7.1、创建数据库表 ...

    李兴华Java Web开发实战经典.pdf (高清版) Part1

    5.4.2、设置文件编码 5.4.3、错误页的设置 5.4.4、数据库连接操作 5.5、包含指令 5.5.1、静态包含 5.5.2、动态包含 5.6、跳转指令 5.7、实例操作:用户登陆程序实现(JSP + JDBC实现) 5.7.1、创建数据库表 ...

    李兴华 Java Web 开发实战经典 高清扫描版Part3

    5.4.2、设置文件编码 5.4.3、错误页的设置 5.4.4、数据库连接操作 5.5、包含指令 5.5.1、静态包含 5.5.2、动态包含 5.6、跳转指令 5.7、实例操作:用户登陆程序实现(JSP + JDBC实现) 5.7.1、创建数据库表 ...

    李兴华Java Web开发实战经典(高清版) Part2

    5.4.2、设置文件编码 5.4.3、错误页的设置 5.4.4、数据库连接操作 5.5、包含指令 5.5.1、静态包含 5.5.2、动态包含 5.6、跳转指令 5.7、实例操作:用户登陆程序实现(JSP + JDBC实现) 5.7.1、创建数据库表 ...

Global site tag (gtag.js) - Google Analytics