`

web开发中的乱码总结

    博客分类:
  • web
 
阅读更多

1. 静态页面的乱码问题
文件的编码和浏览器要显示的编码不一致。

1) 检查文件原始的编码, 可以用记事本打开, 然后选择另存为来看;
2) 给当前页面加入一个指令来建议浏览器用指定的编码来显示文件字符内容.

<meta http-equiv="content-type" content="text/html; charset=GBK">

 
2. JSP 页面的乱码问题
1) page 指令有个 pageEncoding="GBK" 这个会指定当前页面保存的编码, 如果写成ISO8859-1 就不能保存汉字;
2) page 指令的 contentType="text/html; charset=ISO8859-1" 也会像静态页面一样让浏览器来优先选择一种编码.
如果JSP 乱码的话,一般就显示成?,而且不管你给浏览器选什么样的编码,它都不能正确显示


3. 表单提交的乱码问题(Tomcat 特有)
1). POST 的乱码

a. 首先浏览器提交表单的编码是根据表单所在页面来决定的, 而不是根据提交后的JSP 页面的编码来决定的. 把所有的页面的编码都设置成一样的,例如 GBK.
b. 处理方式就是在获取参数之前设置编码:
request.setCharacterEncoding("GBK");
c. 可以用过滤器的方式来解决, Tomcat 已经带了一个现成的:
apache-tomcat-5.5.23\webapps\jsp-examples\WEB-INF\classes\filters\SetCharacter
EncodingFilter.java
web.xml

<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

 

 

 2) GET 方式的乱码

 

a.手动转码:用 setCharacterEncoding() 不能解决. TOMCAT 的一个BUG, GET 方式传送的表单参数总是用的 ISO8859-1 编码. 我们要把它转成 GBK 方式.

String username = request.getParameter("username");
System.out.println(username);
// 转码, 先取得原始的二进制字节数组
byte[] data = username.getBytes("ISO8859-1");
// 根据新的字符集再构造新的字符串
username = new String(data, "GBK");

 b.配置tomcat(java web项目常用的服务器)的链接编码

在Jsp的页面中通过超链接传参数,例如:<a href="ss.jsp?userName=zhangsan"></a> 接收到的参数为乱码。解决办法:在tomcat安装目录下,找到conf目录,打开该目录下的server.xml文件,按照下面的代码进行配置,红色部分为要添加的内容,将其添上即可:

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

 

 4.解决响应乱码:

 

所谓响应中的乱码,就是显示页面上的乱码,因为页面数据是从服务器一端放入响应(response)中,然后发送给浏览器,如果响应中的数据无法被正常解析,就会出现乱码问题。

在http的响应(response)中添加编码信息,使用如下方式:

<%@ page contentType="text/html; charset=gb2312"%>

 

这段要放在jsp页面的第一行,用来指定响应的类型和编码格式,contentType为text/html就是html内容,charset表示编码为gb2312。这样浏览器就可以从响应中获得编码格式了。

 

在html中指定编码格式。

<head>
 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
 <title>title</title>
</head>

 在Servlet中指定编码格式:

response.setCharacterEncoding() 

 附:JSP中的编码设置

1. pageEncoding:<%@ page pageEncoding="UTF-8"%> 设置JSP编译成Servlet时使用的编码

 

2. contentType: <%@ page contentType="text/html; charset=UTF-8"%> 对服务器响应进行重新编码,即jsp的输出流在浏览器中显示的编码

 

3. html页面charset:

<META http-equiv="Content-Type" content="text/html; charset=UTF-8"> 网页的编码信息 ,说明页面制作所使用的编码

 

4. request.setCharacterEncoding() -- 可用在servlet和jsp页面中,作用是设置对客户端请求进行重新编码的编码,即post方式提交的数据进行编码。

 

5. response.setCharacterEncoding() -- 可用在servlet和jsp页面中,对服务器响应进行重新编码,即jsp的输出流在浏览器中显示的编码,

<%@ page contentType="text/html;charset=UTF-8"%>一样

 

6. response.setContentType() -- 可用在servlet和jsp页面中,对服务器响应进行重新编码,即jsp的输出流在浏览器中显示的编码,与<%@ page contentType="text/html;charset=UTF-8"%>一样。如:response.setContentType("text/html;charset=GBK");

 

7.response.setHeader("Content-Type","text/html;charset=UTF-8"); -- 可用在servlet和jsp页面中。response.setHeader 是用来设置返回页面的头 meta 信息, 使用时 response.setHeader( name, contect );

与<META http-equiv="Content-Type" content="text/html; charset=UTF-8">一样

分享到:
评论

相关推荐

    java web开发解决乱码问题

    在Java Web开发过程中,乱码问题是开发者经常会遇到的问题之一。它通常发生在处理含有中文或其他非ASCII字符的数据时。本篇文章将详细介绍在Java Web开发中解决乱码问题的方法。 #### 二、乱码产生的原因 乱码主要...

    WEB开发乱码处理总结

    在WEB开发过程中,乱码问题是一个常见的困扰,尤其是在涉及到字符编码的时候。乱码现象主要出现在数据的输入、处理和输出阶段,例如用户提交的表单数据、数据库存储的数据或者网页显示的内容。本篇文章将深入探讨...

    PHP WEB 开发乱码问题总结

    ### PHP WEB 开发乱码问题总结 在进行PHP Web开发时,编码问题一直是开发者们头疼的一个环节,尤其是在处理中文或多种语言的情况下。本文主要总结了五个方面可能导致的乱码问题及解决方案,帮助开发者们更好地理解...

    配置web-xml解决中文乱码问题.pdf

    本文主要讨论了在 Web 开发中遇到的中文乱码问题,并提供了一些解决方案。首先,需要确定中文乱码问题不是由浏览器引起的,然后讨论了 Tomcat 服务器配置和数据库 bean 配置中的一些解决方案。 一、浏览器配置问题 ...

    Java-Web开发中乱码处理归纳

    通过这个"乱码处理归纳"文件,你可以系统地学习和总结关于Java Web开发中的乱码问题及其解决方案,不断提升你的编码实践能力。在开发过程中,遇到类似问题时,可以参考这些知识点,以便快速定位并解决问题。

    Web_开发中遇到的UTF-8以及乱码的问题总结.zip

    在Web开发过程中,字符编码问题,尤其是UTF-8与乱码相关的困扰,是开发者经常会遇到的挑战。UTF-8是一种广泛使用的多字节字符编码,能够表示Unicode字符集中的几乎全部字符,从而使得不同语言和符号能在同一份文档中...

    jsp中文乱码总结包括 ajax中文乱码

    针对java web开发方面中文乱码情况的总结,基本各种情况都有了!

    解决jsp+servlet开发中的中文乱码问题

    在基于JSP(Java Server Pages)和Servlet技术的Java Web应用开发过程中,中文乱码问题一直是困扰开发者的一大难题。由于Java Web应用程序涉及多个组件之间的交互,包括但不限于JSP页面、Servlet、浏览器以及数据库...

    中文乱码处理问题总结

    中文乱码问题是Web开发中常见的问题之一,主要由不同编码格式之间的转换不匹配引起。通过在JSP页面头部设置正确的编码格式、在接收请求参数时进行编码转换以及使用过滤器统一设置请求的编码格式等方式,可以有效地...

    web程序开发中的URL乱码解决方案

    ### Web程序开发中的URL乱码解决方案 #### 一、前言与背景 在Web应用程序的开发过程中,我们经常遇到的一个问题就是URL中的中文字符或特殊字符出现乱码的情况。这不仅影响用户体验,还可能导致功能异常。本文将...

    Web开发 乱码过滤器.zip

    在Web开发中,乱码问题是一个常见的困扰,尤其是在处理用户输入和页面显示时。这个"Web开发 乱码过滤器.zip"文件包含了处理这类问题的一些关键组件。让我们逐一解析其中的文件及其背后的原理。 首先,我们看到一个...

    Java web工程乱码解决方案

    这里总结了我在j2ee开发过程中,中文乱码的解决方案。希望能够帮到大家!

    JSP中文乱码问题解决总结

    在IT行业中,尤其是在Web开发领域,JSP(JavaServer Pages)是常见的动态网页技术,而中文乱码问题一直是开发者们经常遇到的困扰。本篇文章将深入探讨JSP中文乱码问题的原因、解决策略以及预防措施。 一、乱码产生...

    J2me访问c# Web Services解决了中文乱码

    在本文中,我们将探讨如何使用J2ME(Java 2 Micro Edition)访问由C#编写的Web服务,并解决在传输过程中可能出现的中文乱码问题。首先,我们需要了解J2ME和.NET平台之间的编码差异。 J2ME是Java平台的一个轻量级...

    express中文乱码解决

    在Web开发中,尤其是使用Node.js的Express框架进行后端开发时,处理中文字符可能会遇到乱码问题。这通常是因为客户端与服务器之间的编码设置不一致导致的。本文将详细介绍如何在Express应用中解决中文乱码问题,包括...

    idea 控制台中文乱码和web项目乱码(csdn)————程序.pdf

    在开发Java Web应用程序时,IDEA(IntelliJ IDEA)控制台和Web项目的乱码问题是一个常见的困扰。本文将深入探讨如何解决这个问题,并提供多种解决方案。 首先,我们要理解乱码问题通常发生在两个主要环节:IDEA控制台...

    IDEA中文乱码的解决.pdf

    IDEA是一款功能强大的集成开发环境(IDE),但是在使用过程中,中文乱码的问题经常会出现,导致开发过程中的不便。因此,了解如何解决IDEA中文乱码问题变得非常重要。本文将详细介绍解决IDEA中文乱码的方法,包括...

    ACCESS+ASP中文乱码问题的解决方法借鉴.pdf

    在 Web 开发中,中文乱码问题是一个常见的问题,特别是在使用 ACCESS+ASP 框架时。乱码问题的出现可能是由于编码方式不协调所致。在这个文件中,我们将对 ACCESS+ASP 中文乱码问题的解决方法进行总结和借鉴。 解决...

    Java环境下Web程序中文乱码问题与对策.pdf

    Java环境下Web程序中文乱码问题与对策涉及了计算机编程领域中文字符编码的问题,以及如何在Java开发的Web应用中解决中文乱码问题。以下是对文档内容的详细解读。 1. 字符编码基础: 文档首先介绍了字符编码的基本...

Global site tag (gtag.js) - Google Analytics