`
lirihong
  • 浏览: 7798 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

几种乱码问题的解决方式

    博客分类:
  • Java
阅读更多

 最近搞了一个信息发布系统,遇到几个乱码问题,搞的头都大了。最后还是尝试着进行不同的去转码才把问题解决,所以将问题记录下来。

  1. JSP页面提交到Servlet为乱码:

问题原因:

由于我用的服务器是tomcat,tomcat在没有设置编码时默认为ISO8859-1编码格式,而我们设置的JSP编码方式是UTF-8的或者是GBK的,这样一来当在servlet中取的时候就会产生乱码问题。这种乱码是比较常见的乱码,网上也有好多解决这个问题的方法,在这我记录两种方式来解决乱码:

  • 通过设tomcat的编码方式,tomcat的conf下的server.xml中加上URIEncoding="GBK"
    <Connector port="9090" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK" />
  • 在程序中进行转码,这样比较麻烦一点:
String strContext = request.getParameter("context");
strContext = new String(strContext.getBytes("ISO-8859-1"),"GBK");
  1. response.sendRedirect()中文乱码:

说明:其实网上说的这个问题的挺多的,但一个没有能解决我的问题的,但是还是从众多的经验之谈中得到了启发解决了乱码问题,但还是没有真明白这是什么原因?怎么样能去避免这样的问题?还有什么更好的方式可以解决这个问题?希望在以后的工作和学习中能找到问题的跟源。

描述:我在servlet中使用response.sendRedirect("page.jsp?param=问题"),这里的中文"问题"在JSP页面String msg = (String)request.getParameter("param");获得的参数就是乱码,JSP中使用的是GBK的编码格式,而过滤器中也将request设置上了GBK的编码格式

request.setCharacterEncoding("GBK");

 

但是还是还是搞不定,最后使用下面这个方式将问题解决:

servlet中response.sendRedirect()这前,将url设置编码格式为"ISO8859_1":

String strUrl = "page.jsp?param=问题";
try {
      strUrl = new String(strUrl.getBytes("GBK"),"ISO8859_1");
} catch (UnsupportedEncodingException e) {
      e.printStackTrace();
}
response.sendRedirect(strUrl );

 在JSP中不进行任何的编码操作:

String msg = (String)request.getParameter("param");

 这样就解决了我的乱码问题,希望对别人也有帮助。在javaeye也看到一个朋友说的这种情况,但他说在servlet中转完了ISO8859_1以后,回到页面上再转回GBK,我试过不行。但不转确是对的!很诧异啊!

0
2
分享到:
评论

相关推荐

    JSP乱码 N种解决方案

    通过以上这些方法,基本上可以解决大部分JSP页面的乱码问题。实际开发中,应结合具体情况选择合适的方法,进行系统性的排查和调整。对于复杂的应用场景,可能需要结合多个解决方案一起使用。在日常工作中,养成良好...

    解决Ubuntu和Windows的文件乱码问题

    为了解决这一问题,我们可以采取以下几种方法: 1. 使用iconv命令转换文件内容编码。iconv是一个命令行工具,能够将文件从一种字符编码转换到另一种。通过使用iconv命令,我们可以将GBK编码的文件转换为UTF-8编码,...

    properties文件文中乱码问题解决.doc

    Properties 文件文中乱码问题解决需要注意以下几点: 1. Eclipse 中的 Properties 资源文件的编码默认设置是 ISO-8859-1,而不是GBK。 2. 编辑 Properties 文件中的中文会出现问题。 3. 使用 native2ascii 工具...

    jsp中文乱码问题解决

    解决jsp中文乱码问题的方法有多种,下面我们将讨论几种常见的解决方法。 一、页面中文乱码解决 对于jsp页面中文乱码问题,可以通过修改jsp页面的编码方式来解决。我们可以在jsp页面的开头添加 ”utf-8” %&gt;指令,...

    几种常用解决jsp中文乱码的方案

    JSP 中文乱码是动态网站开发中经常遇到的问题,本文将从产生 JSP 中文乱码的四种类型入手,分析乱码产生的原因,并给出消除乱码的具体方法。 一、页面中文乱码的处理 JSP 采用 ISO-8859-1 作为默认的页面字符编码...

    mysql乱码问题解决

    针对上述情况,解决乱码问题的常见方法有以下几种: 1. **修改客户端编码**:确保客户端使用的字符集与服务器端一致。可以在MySQL命令行工具中执行以下命令来临时修改: ```sql SET character_set_client = 'gbk'...

    struts中文乱码问题解决详细步骤

    解决这个问题通常涉及到编码设置的调整,下面将详细介绍两种方法来解决Struts中的中文乱码问题。 **方法一:配置Filter** 1. **添加过滤器**:首先,我们需要在Web应用的`web.xml`文件中添加一个`...

    web项目乱码问题 jsp乱码问题解决

    解决POST提交乱码的方法有以下几种: A. 手动转换:在接收参数时,先将ISO-8859-1编码的字节流转换为UTF-8编码的字符串,如下: ```java String str = new String(request.getParameter("something").getBytes("ISO...

    java编程中乱码问题解决

    乱码主要由以下几种情况引起: 1. **编码不一致**:在数据传输的过程中,如果发送端和接收端使用的字符集编码不一致,则可能会出现乱码。 2. **浏览器与服务器端编码设置不匹配**:在Web应用中,如果客户端(浏览器...

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

    在解决中文乱码问题时,需要注意以下几点: * encoding 设置:在 ASP 页面的开头设置正确的编码方式,例如 `&lt;%@ CODEPAGE = "936" %&gt;` 或 `&lt;%Response.Charset="utf-8"%&gt;`。 * Character Set:使用正确的字符集,...

    jsp乱码解决方案 本方案解决了jsp常见的乱码问题

    针对上述乱码产生的原因,我们可以采取以下几种方法来解决乱码问题: 1. **统一编码格式**: - **设置JSP页面编码**:在JSP页面头部添加`; charset=UTF-8" pageEncoding="UTF-8"%&gt;`,确保页面使用统一的编码格式。...

    彻底解决中文乱码的问题

    以下是几种常见的解决策略: 1. 文件读写:在使用`BufferedReader`或`FileWriter`等进行文件操作时,明确指定文件的编码格式,如`new FileReader(file, "UTF-8")`。 2. 网络通信:在网络通信中,如HTTP请求,需要...

    mysql乱码问题解决方案

    ### MySQL乱码问题解决方案 在使用MySQL数据库的过程中,经常会遇到字符集编码不匹配导致的数据...以上提供的几种方法能够覆盖大多数场景下的乱码问题,通过逐一排查并按照指导进行设置,可以有效避免或解决乱码问题。

    中文乱码问题分析 自己总结的

    中文乱码问题分析 ...中文乱码问题是 Java 和 JSP 开发中的一种常见问题,解决这些问题需要注意编码方式的一致性,避免在不同的编码方式之间的转换,确保在不同的交互过程中使用的编码方式保持一致。

    乱码文字解决方法

    乱码通常由以下几种原因导致: 1. **编码不匹配**:当文件被保存或读取时使用的字符编码与实际内容所使用的编码不一致。 2. **文件损坏**:文件本身存在损坏或错误,导致部分内容无法正确显示。 3. **系统设置问题*...

    PHP中文乱码问题解决方法

    最后,解决中文乱码问题可以使用一种更好的解决方法,即生成一个只有字母和数字的序列作为文件名,而将原来带有中文的名字保存在数据库中,这样调用move_uploaded_file()就不会出现问题,下载的时候只需将文件名改为...

    Flex解决乱码问题

    为了解决Flex应用程序在不同浏览器上的乱码问题,可以通过以下几种方法来实现: #### 1. 使用`useCodePage`属性 在Flex应用程序中,可以通过设置`useCodePage`属性为`true`来强制Flash Player使用Unicode编码,...

    解决rf中文乱码问题

    在RF中,中文乱码问题可能出现在以下几个方面: 1. **测试数据文件**:如果你的测试数据文件(如CSV或Excel)包含了中文字符,你需要确保文件本身的编码是UTF-8,同时在RF读取这些文件时也要指定正确的编码。例如,...

Global site tag (gtag.js) - Google Analytics