一点总结,记下备忘。
1、Unicode是一个字符集, 可以看作为内码,是各种其它编码互相转换的一个桥梁。
2、Java编译器把java类或者JSP编译为class文件时会将转换为UTF格式保存,运行加载至内存后转换为unicode编码。
编译Java类时,如果没有指定编码默认就用系统编码如XINXP默认编码格式为GBK,相当于Java类文件(GBK)----Class文件(UTF);
容器编译JSP时,如果jsp页面中指定了pageEncoding属性,按照pageEncoding指定的编码进行转换,如果没有指定pageEncoding则按
contentType中charset指定的编码进行转换。
3、运行时,JVM加载Class文件并转换为Unicode编码,Unicode编码可以其它编码进行转换。
以System.out.println("中国")为例分析;
在Java文件中GBK编码为D6 D0 CE C4,编译为Class文件后为:E4 B8 AD E6 96 87,JVM运行时为:4E 2D 65 87
由于System.out.println("中国")是要把数据传输给输出设备,所以要转换为特定系统编码:D6 D0 CE C4
操作系统接收到这个字符流后就可以进行正确的显示了。
4、浏览器发送请求时会对请求参数非Ascii的字符进行编码(注意也会对URL路径中的中文字符进行编码,编码方式和请求参数编码有些区别,但是我们平常一般不会使用中文作为路径,所以不考虑),容器接收到后将数据封装到HttpServletRequest对象中,在使用
getParameter()获取值前要进行解码操作,如果解码和编码所使用的编码格式不一致,就会导致出现乱码。
对于GET请求,浏览器会使用系统默认编码进行编码转换,比如 lang=中文 转换为 lang=%D6%D0%CE%C4
对于POST请求,浏览器使用contentType中charset编码进行转换。
容器进行解码
对于GET请求,默认使用ISO-8859-1进行解码,但是也可以通过容器配置文件设置解码格式,如tomcat容器中可以通过URIEncoding="GBK"设置解码格式
对于POST请求,会使用request.getCharacterEncoding()返回的编码进行解码,如果返回null则使用ISO-8859-1进行解码
所以一般会用过滤器对每个请求都设置编码:request.setCharacterEncoding();
分享到:
相关推荐
在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开发中常见的问题之一,主要由不同编码格式之间的转换不匹配引起。通过在JSP页面头部设置正确的编码格式、在接收请求参数时进行编码转换以及使用过滤器统一设置请求的编码格式等方式,可以有效地...
在 Web 开发中,中文乱码问题是一个常见的问题,特别是在使用 ACCESS+ASP 框架时。乱码问题的出现可能是由于编码方式不协调所致。在这个文件中,我们将对 ACCESS+ASP 中文乱码问题的解决方法进行总结和借鉴。 解决...
在使用Struts2框架进行Web开发的过程中,中文乱码问题是一个常见的问题。这不仅影响用户体验,还可能导致数据处理错误。本文将详细介绍几种解决Struts2中文乱码问题的方法。 #### 方法一:设置JSP页面编码 首先,...
Java环境下Web程序中文乱码问题与对策涉及了计算机编程领域中文字符编码的问题,以及如何在Java开发的Web应用中解决中文乱码问题。以下是对文档内容的详细解读。 1. 字符编码基础: 文档首先介绍了字符编码的基本...
在IT行业中,尤其是在Web开发领域,JSP(JavaServer Pages)是常见的动态网页技术,而中文乱码问题一直是开发者们经常遇到的困扰。本篇文章将深入探讨JSP中文乱码问题的原因、解决策略以及预防措施。 一、乱码产生...
Java中文乱码问题是Java开发中常见的问题,尤其是在Web开发中,乱码问题会导致页面显示混乱,影响用户体验。解决乱码问题需要了解编码的基本原理和各种编码格式的区别。 编码的原因可以总结为两点:计算机中存储...
在IT领域,特别是Web开发中,Struts框架作为Java Web应用的一个重要组成部分,其在处理中文字符时常常遇到乱码问题。这个问题不仅影响了用户体验,也增加了开发者的调试难度。本文将深入探讨Struts框架中中文乱码的...
在使用Servlet和Tomcat进行Web开发时,经常会遇到中文乱码的问题。这主要是因为客户端(如浏览器)与服务器之间使用的字符编码不一致导致的。 #### 二、乱码原因分析 1. **字符编码不匹配**: - **客户端与服务器...
在Web开发中,尤其是使用Node.js的Express框架进行后端开发时,处理中文字符可能会遇到乱码问题。这通常是因为客户端与服务器之间的编码设置不一致导致的。本文将详细介绍如何在Express应用中解决中文乱码问题,包括...
在使用Struts框架进行Web应用程序开发过程中,中文乱码问题是开发者经常会遇到的技术难题之一。这类问题虽然看似不起眼,但如果处理不当,则可能会影响到用户体验甚至导致数据丢失。本文旨在通过对网络资料与实践...
在Web开发中,中文乱码问题一直是困扰开发者的一大难题。特别是在使用Java技术栈(如Servlet与JSP)进行开发时,如果处理不当,很容易出现中文字符显示乱码的情况。本文将详细介绍如何在Servlet与JSP中彻底解决中文...
"过滤器"(Filter)是Java Web开发中的一个概念,它允许我们在请求到达目标资源(如Servlet或JSP)之前或之后执行一些额外的逻辑操作。本文将详细讲解如何利用过滤器来解决中文乱码问题。 1. **理解中文乱码** ...
3. **乱码问题分析**:当Web Dynpro应用读取Excel文件时,如果Excel文件包含非ASCII字符(如中文、日文等),而jxl.jar没有正确处理这些字符的编码,就可能导致乱码。这可能是由于jxl.jar内部未使用正确的字符编码...