`
jiangduxi
  • 浏览: 458891 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

中文乱码问题的处理

阅读更多
在JSP开发中,经常出现乱码的问题。例如
 <html>
  <head>
   <title> Untitle Document</title>
   <meta http-equiv="Content-Type" content="text/html;charset=gb2312"> 
 </head>
  <body>
  以下的可能出现乱码:<br>
  <%
    out.println("这里是乱码");
   %> 
 </body>
 </html>

对于不同的web服务器和不同的JDK版本,它们处理的结果不一样。比如使用Tomcat4.03作为Web服务器,执行就出现乱码,但是如果使用Tomcat5.0 + JDK1.4.1 下运行这个页面,那么就不出现乱码。这个问题是由于服务器使用的编码方式不同和浏览器对不同编码字符显示结果不同而导致的。我们可以在浏览器里手工指定使用简体中文编码。这样,显示的字符就正常了。可是对于普通的客户来说,这种方式是不可行的。其实我们可以在JSP页面中指定编码的方式,以消除乱码。例如
 <%page contentType="text/html;charset=gb2312"%>
 <html>
  <head>
   <title> Untitle Document</title>
   <meta http-equiv="Content-Type" content="text/html;charset=gb2312"> 
 </head>
  <body>
  指定编码方式,不出现乱码:<br>
  <%
    out.println("这里不出现乱码");
   %> 
 </body>
 </html>

在上面的原码中,使用编码格式为gb2312.这样对于不同的服务器和JDK,都不会出现乱码。
对于请求的表单中的数据,如果有中文,也会出现这个情况。例如
 <%
   out.println(request.getParameter("name"));
 %>

如果传来的是中文,那么只需的结果将是乱码。如果执行结果的页面也是gb2312,那么显示出来的就是问号(?)
这是因为浏览器默认使用UTF-8编码方式发送请求,而UTF-8和GB2312编码方式表示字符时不一样,这样就出现了不能识别字符的错误。这样可以通过一个字符编码的函数来解决,就是把请求通过iso-8859-1来编码,例如
  <%@ page contentType="text/html;charset=gb2312"%>
  <%@ page import=java.io.*%>
  <% 
     String result = null;
     byte temp[];
    try{
         temp = chi.getBytes("iso-8859-1");
         result = new String( temp );
       }catch(UnsupportedEncodingException e){
         System.out.println( e.toString() );
       }
      return result;
    catch(){}
  %>
  <%
   out.println(request.getParameter("name"));
  %>

通过以上的转换,问题基本解决。但是耗费很大的力气。其实有个简单方法。如下:
 <%@ page contentType="text/html;charset=gb2312"%>
 <%
   request.setCharacterEncoding("gb2312");
   out.println(request.getParameter("name"));
 %>


注意:对于一些最新的服务器,它们可能不需要做任何处理就可以正常显示中文,比如Tomcat5.0。但是对于某些服务器或者其他比较老的版本,还需要使用上面介绍的方式来进行字符转换。
分享到:
评论

相关推荐

    05 QString字符串处理及中文乱码问题处理.zip

    这篇教程“05 QString字符串处理及中文乱码问题处理”显然会深入探讨如何在Qt应用中有效地管理和解决中文乱码问题。 首先,QString的构造和基本操作是其核心内容。你可以通过各种方式创建一个QString对象,比如直接...

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

    jsp页面传值中文乱码问题处理 在 JSP 页面中传值时,中文字符可能会出现乱码问题,这是由于字符编码不一致所引起的。下面将详细讲解 JSP 中文乱码种类和解决方案。 JSP 文件中文内容显示乱码 在 JSP 文件中,如果...

    IDEA编辑中文乱码问题处理方法.docx

    IntelliJ IDEA编辑中文乱码问题处理方法 一、问题详情 在使用 IntelliJ IDEA 编辑中文代码时,经常会出现乱码问题,例如新建 JS 代码,编辑好代码之后,重新加载,页面内容显示乱码。这种问题的出现是因为 ...

    中文乱码问题处理方法.docx

    中文乱码问题处理方法 在Web开发中,中文乱码问题是一个常见的问题,特别是在JSP页面、URL传递参数、表单提交、数据库连接等方面。为了解决这些问题,本文总结了几种常见的中文乱码问题处理方法。 1. JSP页面显示...

    解压文件时中文乱码问题处理

    在IT行业中,中文乱码问题是一个常见的困扰,尤其是在处理压缩文件时。本文将详细探讨如何在使用7-Zip软件解压文件时解决中文乱码问题,以及如何在C#编程环境中处理这一问题。 首先,我们需要了解乱码产生的原因。...

    java中文乱码问题处理集锦

    ### Java中文乱码问题处理集锦 #### 一、引言 在Java开发过程中,中文乱码问题是开发者经常遇到的问题之一。特别是在处理不同编码格式的数据时,如从数据库读取数据、读写文件或者在网络传输过程中,很容易出现中文...

    java中文乱码问题处理方案.docx

    这样做可以确保Java系统在处理和显示汉字时不会出现乱码问题。 除了上述的编码设置外,还应该注意以下几点: 1. 检查并设置Java文件的编码:在Eclipse或IntelliJ IDEA等集成开发环境中,应确保新建文件的默认编码...

    Lua文件反编译汉字乱码处理

    然而,当处理含有汉字的Lua文件时,反编译过程中可能会出现汉字乱码的问题,这主要与字符编码不匹配有关。本文将详细介绍如何在C#环境下,特别是使用Visual Studio 2013时,解决Lua文件反编译后的汉字乱码问题。 ...

    中文乱码问题处理.docx

    中文乱码问题在IT行业中是常见的困扰,尤其是在处理Web应用中的数据传递时。问题的核心在于字符编码的不同导致的解析混乱。这里我们详细分析一下解决中文乱码问题的两种方法及其失败原因。 首先,方法1是基于ISO-...

    c#汉字乱码处理

    在C#编程中,处理汉字乱码问题是一个常见的需求,尤其是在读取或写入文本文件时。当在C#控制台应用中遇到汉字输出乱码的情况,这通常是因为编码不匹配所导致的。编码是字符集与二进制数据之间的转换规则,不同的系统...

    彻底解决中文乱码的问题

    在IT行业中,尤其是在Java编程领域,中文乱码问题是一个常见的挑战。这主要涉及到字符编码的处理,涉及到Unicode、GBK、UTF-8等不同编码格式之间的转换和一致性问题。本篇文章将深入探讨这个问题,并提供一种彻底...

    hadoop中文乱码问题

    然而,在处理包含中文字符的数据时,用户可能会遇到中文乱码的问题。这个问题通常出现在数据读取、存储或输出的过程中,对数据分析和应用造成困扰。本篇将深入探讨Hadoop中文乱码问题的原因及解决方案。 首先,我们...

    中文乱码问题

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

    中文乱码处理问题总结

    ### 中文乱码处理问题总结 #### 一、引言 在进行中文字符处理时,经常会出现乱码问题。这主要是因为不同的系统、程序或组件可能采用不同的编码方式,而这些编码方式之间的转换不当就会导致乱码现象。本文将重点...

    Weblogic中文乱码问题的处理.docx

    【Weblogic中文乱码问题处理】 在Weblogic服务器运行Java应用程序时,中文字符的正确处理是开发者面临的一个常见挑战。由于编码和解码过程中的不匹配,中文字符可能会显示为问号或奇怪的符号,这被称为乱码问题。...

    sqlite3 for delphi 解决中文乱码问题

    "sqlite3 for delphi 解决中文乱码问题"这个主题,正是针对这一问题提供了解决方案。这里我们将详细探讨SQLite3在Delphi中的应用,中文乱码的成因,以及如何通过自定义修改来解决这个问题。 首先,SQLite3是一个轻...

    解决sql anywhere 11 汉字乱码问题

    在开发基于C++ Builder的...通过以上分析和步骤,你应该能够有效地解决SQL Anywhere 11中遇到的汉字乱码问题,确保你的数据库应用能够正确处理中文数据。在实际操作中,如果遇到困难,建议查阅官方文档或寻求社区支持。

    关于处理中文乱码问题 Filter 代码

    在IT行业中,中文乱码问题是一个常见的困扰,尤其是在处理文本数据时。本文将重点解析“关于处理中文乱码问题 Filter 代码”的相关知识点,并结合Java Servlet API进行详细讲解。 首先,我们要理解什么是Filter...

    Navicat for MySql 导入EXCEL中文乱码问题解决

    在使用Navicat for MySQL工具进行数据导入时,经常会出现中文乱码的问题,尤其是在处理Excel文件时更为常见。这种现象不仅影响数据的正确性,还可能导致后续的数据分析和处理出现错误。因此,有效地解决Navicat for ...

Global site tag (gtag.js) - Google Analytics