`

关于中文乱码的问题(浏览器乱码,表单乱码,数据库连接乱码)

    博客分类:
  • J2EE
阅读更多
一、浏览器地址栏传递乱码:
例如:
<a href="login.do?typeid=表格维护">表格维护 </a>

tomcat做web服务器时,通过地址栏传中文参数时,为防止浏览器上的为乱码
需在服务器server.xml中配置对应的端口中配置编码方式即可.例如:

    <Connector port="8080"
              maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
              enableLookups="false" redirectPort="8443" acceptCount="100"
              debug="0" connectionTimeout="20000"
              disableUploadTimeout="true"  useBodyEncodingForURI="true" URIEncoding="UTF-8"/>
二、JSP页面显示乱码
下面的显示页面(display.jsp)就出现乱码:
<html>
<head>
<title>JSP的中文处理</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body>
<%
out.print("JSP的中文处理");
%>
</body>
</html>
对不同的WEB服务器和不同的JDK版本,处理结果就不一样。原因:服务器使用的编码方式不同和浏览器

对不同的字符显示结果不同而导致的。解决办法:在JSP页面中指定编码方式(gb2312),即在页面的第一

行加上:<%@ page contentType="text/html; charset=gb2312"%>,就可以消除乱码了。完整页面如下


<%@ page contentType="text/html; charset=gb2312"%>
<html>
<head>
<title>JSP的中文处理</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body>
<%
out.print("JSP的中文处理");
%>
</body>
</html>

三、表单提交中文时出现乱码
下面是一个提交页面(submit.jsp),代码如下:
<html>
<head>
<title>JSP的中文处理</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body>
<form name="form1" method="post" action="process.jsp">
<div align="center">
<input type="text" name="name">
<input type="submit" name="Submit" value="Submit">
</div>
</form>
</body>
</html>
下面是处理页面(process.jsp)代码:
<%@ page contentType="text/html; charset=gb2312"%>
<html>
<head>
<title>JSP的中文处理</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body>
<%=request.getParameter("name")%>
</body>
</html>
如果submit.jsp提交英文字符能正确显示,如果提交中文时就会出现乱码。原因:浏览器默认使用UTF

-8编码方式来发送请求,而UTF- 8和GB2312编码方式表示字符时不一样,这样就出现了不能识别字符。

解决办法:通过request.seCharacterEncoding ("gb2312")对请求进行统一编码,就实现了中文的正常

显示。修改后的process.jsp代码如下:
<%@ page contentType="text/html; charset=gb2312"%>
<%
request.seCharacterEncoding("gb2312");
%>
<html>
<head>
<title>JSP的中文处理</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body>
<%=request.getParameter("name")%>
</body>
</html>

四、数据库连接出现乱码
只要涉及中文的地方全部是乱码,解决办法:在数据库的数据库URL中加上
useUnicode=true&characterEncoding=GBK 就OK了。

五、数据库的显示乱码
在mysql4.1.0中,varchar类型,text类型就会出现中文乱码,对于varchar类型把它设为binary属性就

可以解决中文问题,对于text类型就要用一个编码转换类来处理,实现如下:
public class Convert {
/** 把ISO-8859-1码转换成GB2312
*/
public static String ISOtoGB(String iso){
String gb;
try{
if(iso.equals("") || iso == null){
return "";
}
else{
iso = iso.trim();
gb = new String(iso.getBytes("ISO-8859-1"),"GB2312");
return gb;
}
}
catch(Exception e){
System.err.print("编码转换错误:"+e.getMessage());
return "";
}
}
}
把它编译成class,就可以调用Convert类的静态方法ISOtoGB()来转换编码。
0
0
分享到:
评论

相关推荐

    FORM表单中文乱码问题分析与解决

    FORM表单中文乱码问题分析与解决 在 Web 开发中,中文乱码问题是一个常见的问题,尤其是在FORM表单传递参数时。这个问题的根本原因是对中文的编码与解码方式不一致。我们可以理解为对中文的加密与解密的密钥不一致...

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

    首先,需要确定中文乱码问题不是由浏览器引起的,然后讨论了 Tomcat 服务器配置和数据库 bean 配置中的一些解决方案。 一、浏览器配置问题 在讨论解决方案之前,需要确定中文乱码问题不是由浏览器引起的。在使用 ...

    Oracle+数据库例子(数据库连接池+中文乱码+留言板+过滤器)

    本资源包提供了一系列的实例,旨在帮助学习者掌握Oracle数据库与Java Web开发中的关键概念,包括数据库连接池、中文乱码处理、留言板功能以及过滤器技术。 首先,我们来看"数据库连接池"。数据库连接池是一种管理...

    中文乱码问题

    表单处理的中文乱码问题 在表单处理中,中文乱码问题可以通过设置请求字符编码来解决。我们可以在 Servlet 中添加以下代码: `request.setCharacterEncoding("UTF-8");` 这将设置请求字符编码为 UTF-8,从而解决...

    jsp页面传值中文乱码问题处理.docx

    jsp页面传值中文乱码问题处理 在 JSP 页面中传值时,中文字符可能会出现乱码问题,这...JSP 页面传值中文乱码问题可以通过修改编码方式、设置输出编码、接收参数编码、Get 提交编码和数据库连接参数编码等方式来解决。

    JSP存到数据库乱码解决办法

    例如,浏览器可能使用GB2312编码,而服务器端使用的是ISO-8859-1编码,这就可能导致前端正常显示的中文字符在后端被错误解析为乱码。 #### 2. 解决方案:配置CharacterEncodingFilter Spring框架提供了一个非常...

    express中文乱码解决

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

    java中文乱码解决问题

    JAVA 中文乱码解决问题 JAVA 中文乱码问题是开发过程中常见的问题之一,解决这个问题需要了解乱码产生的原因,然后对症下药。下面我们对容易产生乱码问题的场景进行分析,并提出解决方案。 1. 以 POST 方法提交的...

    jsp中文乱码问题jsp中文乱码问题详解

    jsp中文乱码问题的出现是由于编码格式不一致所导致的,可以通过确保jsp文件的存储格式、解码格式和控制浏览器的解码方式一致来解决乱码问题。同时,在使用Post和Get方式提交表单时,需要指定提交的编码格式,以避免...

    java+jsp+mysql开发 web项目处理中文乱码问题

    二、获取表单提交的数据时的中文乱码问题 由于 Tomcat 的 J2EE 实现对表单提交,即以 post 方式提交的参数采用默认的 ISO-8859-1 来处理,中文就会出现乱码。解决方法是,使用过滤器设置编码。我们可以编写一个过滤...

    struts 中文乱码问题解决

    在IT领域,特别是Web开发中,Struts框架作为Java Web应用的一个重要组成部分,其在处理中文字符时常常遇到乱码问题。这个问题不仅影响了用户体验,也增加了开发者的调试难度。本文将深入探讨Struts框架中中文乱码的...

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

    由于Java Web应用程序涉及多个组件之间的交互,包括但不限于JSP页面、Servlet、浏览器以及数据库等,因此在不同组件间保持字符集的一致性对于避免中文乱码至关重要。 #### 中文乱码的根本原因 中文乱码问题的主要...

    解决jsp中文乱码问题(转)

    本文将详细介绍如何解决JSP页面中出现的中文乱码问题,包括页面显示、表单提交和数据库连接三个主要方面。 一、JSP 页面显示乱码 当JSP页面中的中文无法正常显示时,通常是由于编码格式不匹配导致的。每个网页都有...

    JSP中文乱码问题解决办法

    JSP 中文乱码问题解决办法 JSP 页面中中文乱码问题是指在 JSP 页面中使用中文时,页面显示...解决 JSP 中文乱码问题需要从多方面入手,包括设置页面的字符编码、使用 POST 方式提交表单、使用 GET 方式提交表单等。

    Servlet及jsp解决中文乱码问题

    2. **数据库连接字符集设置问题**:当数据库与应用程序之间的字符集不匹配时,也容易出现乱码现象。 3. **前端页面编码设置错误**:如果前端页面的编码设置与后端处理时使用的编码不同,也会导致乱码。 4. **表单...

    使用过滤器解决中文乱码问题

    ### 使用过滤器解决中文乱码问题 在Web开发过程中,经常遇到的一个问题是中文或其它非ASCII字符的乱码问题。这种现象通常出现在浏览器接收的数据与实际编码格式不匹配时。解决此类问题的一种常见方法是使用过滤器...

    Java Web开发中文乱码问题的研究与解决.pdf

    1. 浏览器与服务器交互:当用户通过浏览器提交包含中文的表单数据时,如果浏览器发送的数据编码与服务器接收数据的编码不一致,就会产生乱码。例如,浏览器使用GBK编码,而服务器端配置为UTF-8,就会出现问题。 2. ...

Global site tag (gtag.js) - Google Analytics