`
sophia天雪
  • 浏览: 11622 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

中文乱码问题解决方案汇总

阅读更多
中文乱码问题解决方案汇总

    中文乱码问题常见的主要是JSP中文乱码、Java源文件中文乱码和CSS源文件中文乱码。其
中JSP中文乱码包括如下几个方面:显示页面乱码、参数乱码、表单乱码和源文件乱码。

    首先我们得知道出现种种乱码的原因:最直接的描述就是“编码不一致”,即是说程序的
编码与编程人员的编码不统一。

    接下来再来了解解决办法:既然问题出在编码不统一,那么我们就要对编码进行相应
的“转码”操作。可以是我们开发人员自己手动进行转码,也可以做出声明让程序去进行转
码。

下面我们来来逐个分析解决各种中文乱码的问题。

一、JSP显示页面中文乱码

    JSP页面显示中文乱码主要是HTML中的中文乱码和JSP中动态输出的中文乱码。例如如下代
码若显示乱码:
    <%@ page language="java" import="java.util.*"  %> 
    <html>  
    <head>  
        <title>HTML中文显示</title>
    </head>  
    <body> 
        JSP显示页面中文显示示例: 
        <% String str = "JSP中动态输出中文显示"; out.print(str);   %> 
    </body> 
    </html> 

    这是因为在JSP中没有指定页面显示的编码,出现这种乱码问题我们在页面的首部在添加
一条如下所示的page包引用语句:

<%@ page  contentType="text/html; charset=utf-8"   %> 向页面指定编码为utf-8,让页
面按照此编码来显示,就能解决如上的乱码问题 。

二、参数中文乱码(表单get提交方式URL传递参数乱码)

    使用表单的get提交方式传递的参数存在中文很可能会出现乱码,然而解决这种情况下的
中文乱码的方法比较特殊,转换这个中文字符串或者设置JSP页面显示的编码等都不能解决此
类乱码问题。我们需要修改Tomcat服务器的配置文件才能奏效:打开Tomcat的安装目录中conf
目录下的server.xml配置文件,找到如下所示代码段:

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 

    然后在上述代码段中添加URI的编码设置URIEncoding=“utf-8”,如下所示:<Connector port="8080" protocol="HTTP/1.1" URIEncoding=“utf-8”connectionTimeout="20000" redirectPort="8443" />向程序指名编码类型,重启Tomcat后服务器可以得到正确的页面,中文乱码问题得到解决。

三、表单中文乱码(post方式提交)

    使用request.getParameter(“”)的方法获取表单数据时,如果表单中存在中文数据就
可能会出现乱码。这是因为Tomcat中对于post方法提交的表单采用的默认编码为“ISO-8859-
1”,而这种编码格式不支持中文字符。这时候我们就需要转换编码格式了。

此处有两种可选的处理方法:
    1)当表单的输入项只有一两个时:在使用request对象的getParameter方法获取表单提交
的数据之后进行转码。例如:

    //获取表单数据
    String userName = request.getParameter("userName"); 
    //进行转码
     userName  = new String(userName.getBytes("ISO-8859-1"), "utf-8"));
 
    先从ISO-8859-1格式的字符串中取出字节内容,然后在用utf-8的编码格式重新构造一个新的字符串。经过这样的转换编码以后,所有的中文输入都可以用request对象正常取出。

    2)当表单的输入项不止两个时:逐个转码就显得比较麻烦了,此时就需要用到过滤器。此时我们可以使用过滤器filter或者使用request对象的getParameter方法获取表单提交的数据之前先设置解码方式。;例如:

    //设置解码方式
    request.setCharacterEncoding(“utf-8”)
    //获取表单数据
    String userName = request.getParameter("userName"); 

四、MyEclipse中JSP源文件中文乱码

    1)MyEclipse中默认的JSP编码格式为ISO-8859-1,当打开由其他编辑器(如文本文档)
编辑的JSP文件时会出现乱码, 此时我们只需要修改Eclipse或者是MyEclipse中对JSP的默认
编码就可以了


    MyEclipse的菜单栏中点击“window”preferencesGeneralContent TypesText选中“JSP”如下图所示修改默认编码为“utf-8”



    2)在Eclipse或者MyEclipse当中JSP文件默认的编码为ISO-8859-1,所以在JSP代码中间如果出现中文就不能保存,并且点击保存时会弹出如下所示提示:



    这是因为在JSP源文件中有ISO=8859-1编码无法识别的中文字符,此时我们需要在JSP页面
中声明页面编码格式:

   
    <%@ page language="java" import="java.util.*" pageEncoding="utf-8" %>

   
    其中pageEncoding=“utf-8”指明了JSP页面编码采用utf-8,这样就可以正常保存JSP的
源文件了。


五、Java源文件中文乱码


    我们经常需要在MyEclipse中进行导入项目文件的操作,但是往往导入的项目中的Java源
文件中含有中文时,都将显示为乱码,这是因为导入的项目的编码方式与我们设定好的
MyEclipse的编码方式不一致,此时我们就需要修改导入的项目的编码方式让中文字符正常显
示。


    选中导入的项目名称右击选中“preferences”ResourceText file encoding选
中“Other”,然后选择“UTF-8”(与MyEclipse设置的编码格式一致)保存刷新整个项
目,Java源文件中的中文乱码即可恢复正常。


六、CSS源文件中文乱码

    如上所述,我们修改了项目的编码格式之后,Java源文件的中文乱码问题得到解决了,但
是当我们打开CSS文件时却能往往能再次碰到中文显示乱码的问题,这是因为整个项目的编码
格式修改的和MyEclipse设置的编码格式一致了,而CSS文件却还是保存着以前的编码格式,同
样地,此时我们就需要再来修改CSS文件夹或者某个指定的CSS文件的编码格式了:选中CSS文
件夹或者某个CSS文件右击选中“preferences”ResourceText file encoding选
中“Other”,然后选择“UTF-8”(与MyEclipse设置的编码格式一致)保存刷新CSS文
件,中文乱码即可恢复正常。

  • 大小: 105.9 KB
  • 大小: 10.5 KB
分享到:
评论

相关推荐

    Java开发乱码问题解决方法汇总

    Java开发乱码问题解决方法汇总 Java开发中乱码问题是非常常见的问题之一,而解决这些问题需要具备一定的技术知识和经验。在本文中,我们将总结一些常见的Java开发乱码问题解决方法,希望能够为读者提供帮助。 1. ...

    php中url地址栏传参数中文乱码解决方法汇总

    PHP 中 URL 地址栏传参数中文乱码解决方法汇总是指在 PHP 编程中,如何解决 URL 地址栏传参数中文乱码的问题。这个问题是由于浏览器和服务器之间的编码问题引起的。 url 编码语法: 在 PHP 中,url 编码语法使用 ...

    pdf2swf 解决中文乱码 文件汇总

    以下是一些可能的解决方案: 1. **设置正确的字体**:确保PDF文档中使用的字体包含中文字符。如果原始PDF使用了不支持中文的字体,转换时可能会导致乱码。你可以尝试用支持多语言的字体(如SimSun、Arial Unicode ...

    PKS报警汇总页面中文乱码解决办法

    PKS报警汇总页面中文乱码解决办法是霍尼韦尔PKS系统中的一项关键技术,它旨在解决在非西欧语言环境中的乱码问题。本技术说明将指导用户如何配置英语Windows 2003 Server,以便使用非西欧语言,并描述如何更改SQL ...

    解决ArcMap Desktop 10.1-10.6 导出dbf出现乱码.rar

    总之,解决ArcMap Desktop导出dbf文件时出现中文乱码的问题需要理解dbf文件的性质、编码的重要性以及如何利用插件或更新软件来解决此类兼容性问题。通过正确的方法和工具,可以确保在处理中文数据时不会出现乱码,...

    ajax乱码解决汇总

    本文将深入探讨Ajax乱码问题的成因及其解决方案。 首先,我们需要了解JavaScript和Unicode的关系。JavaScript内部处理字符时,采用的是Unicode编码,这是一种包含几乎全球所有语言字符的通用编码标准。而UTF-8是一...

    解决jfreechart中文乱码方案整理.doc

    因此,针对JFreeChart中的中文乱码问题,本文将汇总并整理一系列有效的解决方案。 #### JFreeChart简介 JFreeChart是一款开源Java图表库,它提供了丰富的API来创建高质量的图表。JFreeChart支持多种类型的图表,...

    php中文乱码问题的终极解决方案汇总

    本文主要给大家介绍了关于php中文乱码问题的终极解决方案,分享出来供大家参考学习,在开始之前,我们先来谈谈为什么会出现中文乱码? 很多新手朋友学习PHP的时候,发现程序中的中文在输出的时候会出现乱码的问题,...

    .Net获取URL中文参数值的乱码问题解决方法总结

    文章提到的“***操作json技巧总结”、“***字符串操作技巧汇总”、“***操作XML技巧总结”、“***文件操作技巧汇总”、“*** ajax技巧总结专题”以及“***缓存操作技巧总结”这些专题都是对.NET开发中常见问题的解决...

    Java Web开发项目中中文乱码解决方法汇总

    以下是对五种常见Java Web中文乱码情况的详细分析及解决方法: 1. **JSP页面中文显示乱码** 当浏览器访问JSP页面时,如果页面内容编码与浏览器解析的编码不一致,就会出现乱码。解决方法是在JSP页面顶部添加`...

    IE问题解决方法汇总

    【IE问题解决方法汇总】 IE浏览器作为曾经广泛使用的网络浏览工具,可能会遇到各种问题,这里汇总了一些常见的故障及其排除方法: 1、**网页乱码的排除**:网页乱码通常是由于编码设置不正确或缺少内码转换器导致...

    springmvc 发送ajax出现中文乱码的解决方法汇总

    这四种方法都可以有效地解决Spring MVC在处理Ajax请求时的中文乱码问题。选择哪种方法取决于项目的具体情况和团队的开发习惯。通常情况下,推荐使用方法三或方法四,因为它们不需要修改Spring的原始库,同时能够确保...

    java 中的乱码问题汇总及解决方案

    本文将深入探讨Java中可能出现的乱码问题及其解决方案。 **编码与解码** 编码是将字符转换为字节的过程,而解码则是将字节转换回字符。在Java中,字符通常使用Unicode(如UTF-16)表示,但文件或网络传输可能使用...

    中文乱码处理汇总.docx

    中文乱码问题在IT行业中是常见的困扰,尤其是在处理与字符编码相关的编程任务时。下面将对几种常见的中文乱码情况及解决策略进行详述。 首先,对于HTML中的中文乱码问题,原因在于文件编码未被正确指定。为了解决这...

    java文件JSP文件乱码汇总

    本文将深入探讨Java与JSP文件乱码的问题,提供一系列解决方案,确保数据正确无误地在不同平台和系统之间传递。 #### 一、统一字符集设置 **问题描述**:在项目开发中,由于Java默认使用UTF-8编码,但在实际操作中...

    oracle调优,乱码解决等汇总

    解决方法包括:检查并统一数据库的字符集设置(NLS_LANG环境变量)、表空间的字符集、字段的字符集;确保输入数据的编码正确;使用CONVERT函数转换编码格式;或通过ALTER TABLE命令修改字段的字符集。 2. **Oracle...

    Windows XP SP3操作系统乱码题汇总

    以下是一些常见的乱码情况及其解决方案的汇总: 第一题涉及的是在Word文档中快速定位到指定页数。通过菜单栏的"编辑"选项,然后选择"定位",在弹出的对话框中输入页码5,即可跳转到第五页。这是无需使用垂直滚动条...

    java web 开发乱码汇总

    #### 一、乱码问题的根源及解决方案概述 乱码问题在Java Web开发中是一个常见的问题,尤其是在处理国际化应用时更为突出。问题的根本原因在于计算机字符编码方式的多样性和标准的不统一。由于全球各地的语言文字...

Global site tag (gtag.js) - Google Analytics