首先应该明白jsp页面两个与编码有关的参数的作用:
1、pageEncoding:用于指定jsp页面的编码格式,
pageEncoding指定文件保存的格式,由于JVM内部是使用的unicode编码格式,容器在编译JSP时
会根据pageEncoding指定的编码格式将文件内容转换为unicode的格式,
如果没有指定pageEncoding就默认使用charset的编码格式
2、contentType="text/html;charset=UTF-8"
charset的作用有两个,一是从服务器返回到浏览器时,指示浏览器以charset指定的编码格式显示内容,
另一个作用是,当我们在页面上填写完数据提交时,浏览器会将数据转换为charset指定的格式传给服务器。
charset默认的编码格式为ISO-8859-1
post方式传递参数
post方式的数据是通过Http请求头传给Servlet的,Servet容器在获取这些数据时,如通过getParameter()方法获取数据,容器会根据request.getCharacterEncoding()指定的编码格式来解析接收数据,
如果getCharacterEncoding()==null(默认情况正式如此,http协议没有传递编码信息给服务器)一般就默认使用ISO-8859-1。
如果我们在页面指定的charset编码不是ISO-8859-1也没有通过setetCharacterEncoding()指定编码格式,那么乱码问题就会产生了。
比如你在页面上面设定charset=UTF-8,现在有一个参数是三个汉字,那么UTF-8的编码就会有六个字节的数据,
此时容器用ISO-8859-1来解析数据,而ISO-8859-1是单字节的编码,
本来是两个字,容器却解析为六个,乱码问题由此就产生了。
解决这类乱码的方法是通过配置一个编码过滤器来指定编码格式:
public class EncodingFilter implements Filter {
public EncodingFilter() {
}
public void init(FilterConfig parm1) throws javax.servlet.ServletException {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws java.io.IOException,
javax.servlet.ServletException {
request.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
}
public void destroy() {
}
}
url或者get方式传递参数
首先应该尽量避免使用这种方式传递中文参数,如果需要传递中文参数比较可靠的做法
在传递参数时使用URLEncoder.encode()对传递的参数进行编码,然后在参数使用端使用URLDecoder.decode()进行解码
分享到:
相关推荐
在Java Web开发过程中,乱码问题是开发者经常会遇到的问题之一。它通常发生在处理含有中文或其他非ASCII字符的数据时。本篇文章将详细介绍在Java Web开发中解决乱码问题的方法。 #### 二、乱码产生的原因 乱码主要...
本文主要讨论了在 Web 开发中遇到的中文乱码问题,并提供了一些解决方案。首先,需要确定中文乱码问题不是由浏览器引起的,然后讨论了 Tomcat 服务器配置和数据库 bean 配置中的一些解决方案。 一、浏览器配置问题 ...
在进行PHP Web开发时,编码问题一直是开发者们头疼的一个环节,尤其是在处理中文或多种语言的情况下。本文主要总结了五个方面可能导致的乱码问题及解决方案,帮助开发者们更好地理解和解决这些问题。 #### 一、...
在基于JSP(Java Server Pages)和Servlet技术的Java Web应用开发过程中,中文乱码问题一直是困扰开发者的一大难题。由于Java Web应用程序涉及多个组件之间的交互,包括但不限于JSP页面、Servlet、浏览器以及数据库...
乱码问题在Java Web开发中是一个常见的问题,尤其是在处理国际化应用时更为突出。问题的根本原因在于计算机字符编码方式的多样性和标准的不统一。由于全球各地的语言文字差异巨大,不同的操作系统、浏览器和服务器...
在Web开发过程中,字符编码问题,尤其是UTF-8与乱码相关的困扰,是开发者经常会遇到的挑战。UTF-8是一种广泛使用的多字节字符编码,能够表示Unicode字符集中的几乎全部字符,从而使得不同语言和符号能在同一份文档中...
在 Web 开发中,中文乱码问题是一个常见的问题,特别是在使用 ACCESS+ASP 框架时。乱码问题的出现可能是由于编码方式不协调所致。在这个文件中,我们将对 ACCESS+ASP 中文乱码问题的解决方法进行总结和借鉴。 解决...
中文乱码问题是Web开发中常见的问题之一,主要由不同编码格式之间的转换不匹配引起。通过在JSP页面头部设置正确的编码格式、在接收请求参数时进行编码转换以及使用过滤器统一设置请求的编码格式等方式,可以有效地...
Java环境下Web程序中文乱码问题与对策涉及了计算机编程领域中文字符编码的问题,以及如何在Java开发的Web应用中解决中文乱码问题。以下是对文档内容的详细解读。 1. 字符编码基础: 文档首先介绍了字符编码的基本...
Java中文乱码问题是Java开发中常见的问题,尤其是在Web开发中,乱码问题会导致页面显示混乱,影响用户体验。解决乱码问题需要了解编码的基本原理和各种编码格式的区别。 编码的原因可以总结为两点:计算机中存储...
在IT行业中,尤其是在Web开发领域,JSP(JavaServer Pages)是常见的动态网页技术,而中文乱码问题一直是开发者们经常遇到的困扰。本篇文章将深入探讨JSP中文乱码问题的原因、解决策略以及预防措施。 一、乱码产生...
在IT领域,特别是Web开发中,Struts框架作为Java Web应用的一个重要组成部分,其在处理中文字符时常常遇到乱码问题。这个问题不仅影响了用户体验,也增加了开发者的调试难度。本文将深入探讨Struts框架中中文乱码的...
在使用Servlet和Tomcat进行Web开发时,经常会遇到中文乱码的问题。这主要是因为客户端(如浏览器)与服务器之间使用的字符编码不一致导致的。 #### 二、乱码原因分析 1. **字符编码不匹配**: - **客户端与服务器...
在Web开发中,尤其是使用Node.js的Express框架进行后端开发时,处理中文字符可能会遇到乱码问题。这通常是因为客户端与服务器之间的编码设置不一致导致的。本文将详细介绍如何在Express应用中解决中文乱码问题,包括...
在使用Struts2框架进行Web开发的过程中,中文乱码问题是一个常见的问题。这不仅影响用户体验,还可能导致数据处理错误。本文将详细介绍几种解决Struts2中文乱码问题的方法。 #### 方法一:设置JSP页面编码 首先,...
在使用Struts框架进行Web应用程序开发过程中,中文乱码问题是开发者经常会遇到的技术难题之一。这类问题虽然看似不起眼,但如果处理不当,则可能会影响到用户体验甚至导致数据丢失。本文旨在通过对网络资料与实践...
3. **乱码问题分析**:当Web Dynpro应用读取Excel文件时,如果Excel文件包含非ASCII字符(如中文、日文等),而jxl.jar没有正确处理这些字符的编码,就可能导致乱码。这可能是由于jxl.jar内部未使用正确的字符编码...
"过滤器"(Filter)是Java Web开发中的一个概念,它允许我们在请求到达目标资源(如Servlet或JSP)之前或之后执行一些额外的逻辑操作。本文将详细讲解如何利用过滤器来解决中文乱码问题。 1. **理解中文乱码** ...
在Web开发中,中文乱码问题一直是困扰开发者的一大难题。特别是在使用Java技术栈(如Servlet与JSP)进行开发时,如果处理不当,很容易出现中文字符显示乱码的情况。本文将详细介绍如何在Servlet与JSP中彻底解决中文...