使用JSP和Servlet时经常碰到中文乱码问题。

经过学习实践后,现总结如下:

1、POST方式存取数据、GET取数据都可以使用过滤器来修改编码方式

核心代码:

request.setCharacterEncoding("UTF-8");

2、GET发送数据时,使用上述设置无效。原理如下:

post请求和get请求存放参数位置是不同的。

post方式参数存放在请求数据包的消息体中。

get方式参数存放在请求数据包的请求行的URI字段中,以?开始以param=value&parame2=value2的形式附加在URI字段之后。

而request.setCharacterEncoding(charset) 只对消息体中的数据起作用,对于URI字段中的参数不起作用,因此无效。

可以使用如下任意一种方式来修改:

(1)在tomcat中修改配置文件,增加URIEncoding="UTF-8",位置/conf/servr.xml,修改代码如下:

<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" URIEncoding="UTF-8"/>

(2)使用过滤器,核心代码:

String paramValue = request.getParameter("paramName");
paramValue = new String(paramValue.trim().getBytes("ISO-8859-1"), “UTF-8”);

附两篇扩展阅读:

(1)原理更详细版:http://lavasoft.blog.51cto.com/62575/274527

(2)代码更完整版:http://www.iteye.com/topic/483158

转载于:https://www.cnblogs.com/dhuhank/p/4442568.html

JSP中乱码问题,你真的理解了么?相关推荐

  1. jsp中解决中文乱码问题(基础问题)

    在两个jsp简单页面编写中,出现了一个问题,出现了中文乱码, 本应该出现的中文显示不出来,分析如下:java编程之所以会出现说出现中文乱码是 因为:Java的内核和class文件是基于unicode的 ...

  2. JSP中获取HTML中的中文内容是乱码的解决方法---开发中遇到的问题

    1.转换字符编码方式 在JSP中,<%=request.getParameter("username")%>应改为: <%=new String(request. ...

  3. jsp 中提交表单后在firefox、chrome 中中文显示为正常,但在IE中中文显示为乱码?...

    如题: jsp 中提交表单后在firefox.chrome 中中文显示为正常,但在IE中中文显示为乱码? 备注:框架:spring 和hibernate 提交表单后,在IE中提交的数据传到Contro ...

  4. JSP中get和post请求方式的区别及乱码解决方法

    JSP中get和post请求方式的区别及乱码解决方法 get提交方式:默认method="get" 和 地址栏.超链接请求方式默认都属于get提交方式 form表单的method属 ...

  5. [转载] Java内存管理-你真的理解Java中的数据类型吗(十)

    参考链接: Java中的字符串类String 1 做一个积极的人 编码.改bug.提升自己 我有一个乐园,面向编程,春暖花开! 推荐阅读 第一季 0.Java的线程安全.单例模式.JVM内存结构等知识 ...

  6. (转载)你真的理解Android AIDL中的in,out,inout么?

    前言 这其实是一个很小的知识点,大部分人在使用AIDL的过程中也基本没有因为这个出现过错误,正因为它小,所以在大部分的网上关于AIDL的文章中,它都被忽视了--或者并没有,但所占篇幅甚小,且基本上都是 ...

  7. Tomcat 中 jsp 中文乱码显示处理解决方案

    JSP 中文乱码处理解决方案 初学JSP,尤其是Tomcat环境,经常会因为中文汉字字符集设置问题导致中文乱码,本文就这一问题提出解决方案,解决中文乱码问题,供各位参考,我采用的方案是统一字符集至UT ...

  8. jsp中引入外部js文件发生中文乱码

    jsp中引入外部js文件发生中文乱码 前言 排查 解决问题 前言 我在写作业时发现自己的作业出现中文乱码 排查 我先检查了一番 根据F12找到了span标签的id,在编译器中进行搜索找到找到了语句的所 ...

  9. HTML基础和JSP了解及JSP中代码加载顺序

    HTML入门基础教程 html是什么,什么是html通俗解答: html是hypertext markup language的缩写,即超文本标记语言.html是用于创建可从一个平台移植到另一平台的超文 ...

  10. jsp 中文乱码解决大全

    一.JSP页面显示乱码 二.表单提交中文时出现乱码 三.数据库连接 大家在JSP的开发过程中,经常出现中文乱码的问题,可能一至困扰着您,我现在把我在JSP开发中遇到 的中文乱码的问题及解决办法写出来供 ...

最新文章

  1. Java Socket 编程
  2. python xgboost参数_如何对XGBoost模型进行参数调优
  3. python和shell哪个快_有没有可能让这个shell脚本更快?
  4. numpy 若干行和列_Numpy的轴,pandas的行和列
  5. java orika_常见Bean映射工具分析评测及Orika介绍
  6. nw.js FrameLess Window下的窗口拖拽与窗口大小控制
  7. php静态数组变量初始化,为什么数组初始化时,赋值不能是常量?
  8. 云计算如何使企业的业务受益?
  9. 嵌入式Linux入门7:kernel移植
  10. MongoDB:MapReduce基础及实例
  11. php date()时间不对,PHP DATE( )函数与系统时间差8小时解决办法
  12. win10手柄震动测试软件,win10系统测试手柄震动频率的操作方法
  13. 沿着哈勃望远,看清MyBatis整体架构
  14. ELF、BIN、HEX、AXF的区别,资料整理
  15. 论文阅读 (九):A survey on instance selection for active learning (2012)
  16. 青岛大学计算机考研率高吗,学院2015届毕业生考研率再创新高
  17. BSC 再现闪电贷攻击 BUNNY 闪崩
  18. OnInitDialog()中SetFocus()不起作用解决方法
  19. tf.estimator.train_and_evaluate 详解
  20. 基于模型的无人机开发

热门文章

  1. mysql查看前十行_head 命令 读取文件的前n行,默认查看文件的前十行
  2. java实现打印功能_Js 打印功能的实现(Java)
  3. python输入一个字母标识符_Python基础入门语法和变量类型(一)
  4. 拆分是解决大规模应用问题的本质
  5. 分区表的误区:性能提升
  6. Tensor Flow Lite C++ API 介绍
  7. 斯坦福大学CS143编译原理课程笔记:3.编译器的性价比
  8. Java 经典笔试题
  9. 【Linux】CentOS下vim的配置
  10. JavaScript权威指南--chapter 8函数