使用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. R语言使用trimws函数:trimws函数去除(删除、remove)字符串头尾的空格
  2. php设计是什么意思,php的设计模式是什么
  3. DDD理论学习系列(10)-- 聚合
  4. ON_NOTIFY消息中的id坑了我一天
  5. java多线程下载_Java实现多线程下载,支持断点续传
  6. python tkinter 背景色改变不了_python – 在Tkinter中动态更改小部件背景颜色
  7. 归并排序 Merge Sort
  8. c在linux中怎样执行文件,如何在Linux中编译和运行C/C+程序,简单示例教懂你
  9. [转载] 《财富》评最受尊敬IT企业:苹果居首IBM次席
  10. 常用 AT 命令手册
  11. H3C认证路由交换互联网络专家
  12. 用java编写一个课表串口,安卓课程表源代码
  13. Scala学习(一):Scala简介与Hello World!
  14. 定制你的Unity编辑器
  15. MapX bug 和设计缺陷
  16. 中兴B860AV2.1、1.1T、2.1-A-M-T,通刷线刷固件及教程
  17. matlab矩阵对角线上下加减,matlab – 如何在相关矩阵中移动靠近矩阵对角线的较大值...
  18. 宝塔面板反向代理怎么设置
  19. ps快捷图标在哪个文件夹_photoshop快捷键及快捷方式(详细)
  20. Dbeaver_ee使用mysql和mongodb

热门文章

  1. java中==与equals的区别及理解_Java开发中常量池的理解与归纳
  2. 【李宏毅机器学习】01:机器学习介绍 Introduction
  3. python 与栈 入门
  4. 使用Opencv分离图像通道/合并图像通道
  5. SpringBoot整合Dubbo案例
  6. JavaScript学习——JavaScript 循环
  7. Java之品优购课程讲义_day12(2)
  8. 学习笔记之15道简单算法题
  9. Linux远程秘钥登录方式
  10. 【九度OJ】题目1084:整数拆分