`

字符集和编码乱码解决方案(转)

阅读更多

中文乱码:在以后学习过程中全部采用UTF-8 
1、文件的乱码 
1.1、项目文本文件默认编码: 
       【右击项目】->【Properties】->【Resource】->【Text file encoding】     

1.2、文件默认编码:默认使用项目的默认编码 
     【右击文件】->【Properties】->【Resource】->【Text file encoding】 
1.3、 JSP 文件编码:由于 JSP 要翻译为 Servlet 
1.3.1、JSP文件编码: 
     【右击文件】->【Properties】->【Resource】->【Text file encoding】 
1.3.2、JSP翻译为Servlet时的编码: 
   <%@ page language="java" pageEncoding="utf-8"%> 
中文乱码:在以后学习过程中全部采用UTF-8 


2、浏览器和服务器间传输数据的乱码 
2.1、 浏览器端 编码,一般由服务器端告诉浏览器如何解码数据: 
2.1.1、Servlet 
          response.setContentType("text/html; charset=UTF-8"); 
        或者  response.setCharacterEncoding(“UTF-8”); 
   2.1.2、JSP 
         <%@ page language="java" contentType="text/html; charset=utf-8" %> 
   2.1.3、通用 
         <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 

注:浏览器编码可以由我们手工修改,但最后不要这样,一般让浏览器自动选择即可。 
中文乱码:在以后学习过程中全部采用UTF-8 
2、浏览器和服务器间传输数据的乱码 

2.2、 服务器端 编码,将客户端传过来的数据进行解码: 
      浏览器默认使用ISO-8859-1进行编码数据,然后将数据传输到服务器,因此我们默认只需要将浏览器发送过来的数据转换为我们需要的编码即可。 
2.2.1、最简单方式: 

Java代码   收藏代码
  1. String username = request.getParameter(“username”);  
  2. username = new String(username.getBytes("ISO-8859-1“), "UTF-8");  


2.2.2、比较好的解决方案 
      // 必须 在获取参数之前,调用如下方法先解码 
       request.setCharacterEncoding(“UTF-8”); 
      String username = request.getParameter(“username”); 
2.4、比较通用方案:在一个Filter中更改所有请求的编码方式: 
    1、在src中添加filter来设置编码格式是中文,filter类可以在tomcat的包里面:apache-tomcat-6.0.16.zip\apache-tomcat-6.0.16\webapps\examples\WEB-INF\classes\filters下面,SetCharacterEncodingFilter.java文件 

     2 、在 web.xml 中配置 filter ,具体配置如下页: 

Java代码   收藏代码
  1. <filter>  
  2.         <filter-name>Set Character Encoding</filter-name>  
  3.         <filter-class>filters.SetCharacterEncodingFilter</filter-class>  
  4.         <init-param><param-name>encoding</param-name>  
  5.         <param-value>utf-8</param-value></init-param>  
  6. </filter>  
  7. <filter-mapping>  
  8.         <filter-name>Set Character Encoding</filter-name>  
  9.         <url-pattern>/*</url-pattern>  
  10. </filter-mapping>  


2.5、 GET提交方式中文乱码解决 
通过修改request.setCharacterEncoding(“UTF-8”);只能解决POST提交方式的请求编码,对GET无效。 

     1 、最简单解决方案: 该解决方案不再需要任何额外配置(如filter) 
           TOMCAT默认ISO-8859-1 因此可以设置默认编码为UTF-8解决,在conf\server.xml文件中设置如下 
           

Java代码   收藏代码
  1. <Connector port="8080" protocol="HTTP/1.1"  
  2.                                connectionTimeout="20000"  
  3.                                redirectPort="8443" URIEncoding=”UTF-8”/>  


     2 、在 tomcat4 之后,可以通过如下配置来解决中文乱码,但必须配置 filter 
         在conf\server.xml文件中设置如下 
                  

Java代码   收藏代码
  1. <Connector port="8080" protocol="HTTP/1.1"  
  2.                                        connectionTimeout="20000"  
  3.                                        redirectPort="8443" useBodyEncodingForURI=“true”  />  


         然后request.setCharacterEncoding(“UTF-8”)也可解决GET乱码 

 

转贴自【http://sishuok.com/forum/posts/preList/306/428.html

分享到:
评论

相关推荐

    字符集和乱码解决方案

    字符集和乱码解决方案 字符集是计算机中用于表示文本的编码方式,字符集的不同可能会导致乱码问题。在Java中,乱码问题是常见的问题之一,本文将讨论字符集和乱码解决方案,帮助开发者解决乱码问题。 字符集简介 ...

    java字符集编码乱码详解

    ### Java字符集编码乱码详解 #### 一、编码与乱码基础知识 在计算机科学领域,字符集(Character Set)是指一系列符号和电子通信代码的标准集合。每种字符集都有其特定的应用场景和优势。例如,ASCII(American ...

    关于GBK和Unicode字符集转换乱码问题

    ### 关于GBK和Unicode字符集转换乱码问题 在计算机科学与互联网技术中...通过正确理解字符集的原理、使用适当的工具和技术手段、以及严谨的测试流程,可以有效地避免和解决乱码问题,从而提高数据处理的准确性和效率。

    深入理解字符编码(字符集 字符编码 字符显示 乱码问题)

    文档中主要介绍了各类字符集以及相关的字符编码,字符的显示原理,从输入到显现的整个过程,程序中出现的乱码问题以及解决方案

    MySQL字符编码及乱码解决方案.txt

    MySQL字符编码及乱码解决方案 · 使用多种字符集来存储字符串 · 使用多种校对规则来比较字符串 · 在同一台服务器, 同一个数据库或甚至在同一个表中使用不同字符集或校对规则来混合字符串 · 允许定义任何级别...

    字符集乱码解决方案

    以下是一些针对字符集乱码的解决方案: 1. **JSP页面设置**: JSP页面中,确保`contentType`和`pageEncoding`两个属性的字符集设置一致,如`UTF-8`。这样可以确保JSP文件在编译成Servlet时使用正确的字符集,并在...

    jdbc连接oracle字符集不同出现乱码

    ### JDBC 连接 Oracle 字符集不同导致乱码问题解析及解决方案 #### 问题背景 在使用 JDBC(Java Database Connectivity)连接 Oracle 数据库时,可能会遇到一个常见的问题:从远程 Oracle 数据库获取的数据出现乱码...

    MYSQL字符集乱码的解决

    ### MySQL字符集乱码问题及解决方案 #### 一、问题背景 在使用MySQL数据库时,很多用户会遇到中文字符显示为乱码的情况。这通常是因为MySQL数据库中的字符集设置不一致导致的。例如,在命令行下操作MySQL时,可能会...

    DB2 GBK 字符集解决方案.zip

    DB2数据库系统是IBM开发的...通过上述步骤和注意事项,我们可以成功地在DB2环境中实施GBK字符集解决方案,确保中文数据的正确存储和处理。实践过程中,应仔细检查每个环节,避免因字符集问题导致的数据丢失或显示错误。

    Linux系统中文乱码解决完整方案

    同时,本文档还提供了一些其他的解决方案和建议,旨在帮助 Linux 用户更好地解决中文乱码问题。 knowledge points: * Linux 系统中文乱码问题是由于 Linux 和 Windows 系统下所用户的字符集不同所导致的。 * 解决...

    JSP乱码解决方案

    - **编码与解码过程出错**:在读取或写入文件、数据库或请求参数时,如果编码和解码使用的字符集不同,也容易出现乱码。 - **IDE配置问题**:开发工具的编码设置不正确,可能导致源代码保存时就已经产生了乱码。 - *...

    MySQL数据库系统中文乱码问题及解决方案.pdf

    2. 字符集编码及校验规则 在MySQL数据库中,可以使用show character set; 语句查看可用的字符集,show collation; 语句可以查看一个字符集的校验规则。如果想要查看gb2312字符集的校验规则,可以使用show collation...

    oracle数据库字符集 无法修改数据库字符集 乱码

    Oracle数据库字符集是指用于表示数据库中所有字符数据的编码方式。它定义了如何将字符映射到二进制数据,从而确保数据在存储和处理过程中的正确性和一致性。Oracle数据库支持多种字符集,包括单字节字符集(如ASCII...

    MySQL乱码解决方案数据库乱码

    在处理MySQL数据库时,遇到字符集编码不一致导致的数据乱码问题非常常见。这不仅会影响数据的正确显示,还可能导致数据丢失或损坏。根据提供的标题、描述、标签以及部分内容来看,本文将围绕MySQL乱码问题进行深入...

    winform的字符串转换乱码解决

    4. 数据库编码匹配:确保应用程序使用的数据库连接字符串和数据库服务器的字符集设置相匹配。例如,MySQL中可以设置UseUnicode=true&characterEncoding=utf8。 三、代码示例 以下是一个简单的使用UTF-8编码读取...

    JSP乱码 N种解决方案

    - 数据库中的数据编码应与JSP页面保持一致,确保数据库连接池配置中指定正确的字符集,例如MySQL的`useUnicode=true&characterEncoding=utf8`。 6. **表单提交编码** - 当用户通过表单提交数据时,确保表单的`...

    codeview 字符集编码对比

    总结一下,"CodeView 字符集编码对比"是一个可能用于对比和转换字符集的工具,它涉及到的IT知识点主要包括字符集的概念、各种字符集编码(如ASCII、GBK、UTF-8)的特性以及他们在实际应用中的挑战和解决方案。...

    乱码解决 乱码解决 乱码解决 乱码解决 乱码解决

    4. **程序配置不当**:编程语言或者应用程序的编码设置不正确,例如在Java中未指定正确的字符集,可能会导致乱码。 5. **网络传输问题**:在网络传输过程中,如果文件的编码信息丢失,或者传输过程中数据损坏,也...

    imp exp字符集解决方案

    Oracle字符集是数据库管理系统Oracle中用于编码和解析字符的关键组件,它定义了如何存储和显示各种语言的文字。字符集有大小之分,并且存在包容关系,即某些字符集是其他字符集的子集,比如us7ascii是zhs16gbk的子集...

    字符集编码

    在Web开发中,字符集编码问题经常成为开发者需要解决的关键技术挑战之一。不同语言、不同系统间的字符编码差异可能导致数据在传输过程中出现乱码等问题。因此,理解字符集编码的基本原理及如何在实际开发中正确配置...

Global site tag (gtag.js) - Google Analytics