最近搞了一个信息发布系统,遇到几个乱码问题,搞的头都大了。最后还是尝试着进行不同的去转码才把问题解决,所以将问题记录下来。
- 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");
- 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,我试过不行。但不转确是对的!很诧异啊!
分享到:
相关推荐
通过以上这些方法,基本上可以解决大部分JSP页面的乱码问题。实际开发中,应结合具体情况选择合适的方法,进行系统性的排查和调整。对于复杂的应用场景,可能需要结合多个解决方案一起使用。在日常工作中,养成良好...
为了解决这一问题,我们可以采取以下几种方法: 1. 使用iconv命令转换文件内容编码。iconv是一个命令行工具,能够将文件从一种字符编码转换到另一种。通过使用iconv命令,我们可以将GBK编码的文件转换为UTF-8编码,...
Properties 文件文中乱码问题解决需要注意以下几点: 1. Eclipse 中的 Properties 资源文件的编码默认设置是 ISO-8859-1,而不是GBK。 2. 编辑 Properties 文件中的中文会出现问题。 3. 使用 native2ascii 工具...
解决jsp中文乱码问题的方法有多种,下面我们将讨论几种常见的解决方法。 一、页面中文乱码解决 对于jsp页面中文乱码问题,可以通过修改jsp页面的编码方式来解决。我们可以在jsp页面的开头添加 ”utf-8” %>指令,...
JSP 中文乱码是动态网站开发中经常遇到的问题,本文将从产生 JSP 中文乱码的四种类型入手,分析乱码产生的原因,并给出消除乱码的具体方法。 一、页面中文乱码的处理 JSP 采用 ISO-8859-1 作为默认的页面字符编码...
针对上述情况,解决乱码问题的常见方法有以下几种: 1. **修改客户端编码**:确保客户端使用的字符集与服务器端一致。可以在MySQL命令行工具中执行以下命令来临时修改: ```sql SET character_set_client = 'gbk'...
解决这个问题通常涉及到编码设置的调整,下面将详细介绍两种方法来解决Struts中的中文乱码问题。 **方法一:配置Filter** 1. **添加过滤器**:首先,我们需要在Web应用的`web.xml`文件中添加一个`...
解决POST提交乱码的方法有以下几种: A. 手动转换:在接收参数时,先将ISO-8859-1编码的字节流转换为UTF-8编码的字符串,如下: ```java String str = new String(request.getParameter("something").getBytes("ISO...
乱码主要由以下几种情况引起: 1. **编码不一致**:在数据传输的过程中,如果发送端和接收端使用的字符集编码不一致,则可能会出现乱码。 2. **浏览器与服务器端编码设置不匹配**:在Web应用中,如果客户端(浏览器...
在解决中文乱码问题时,需要注意以下几点: * encoding 设置:在 ASP 页面的开头设置正确的编码方式,例如 `<%@ CODEPAGE = "936" %>` 或 `<%Response.Charset="utf-8"%>`。 * Character Set:使用正确的字符集,...
针对上述乱码产生的原因,我们可以采取以下几种方法来解决乱码问题: 1. **统一编码格式**: - **设置JSP页面编码**:在JSP页面头部添加`; charset=UTF-8" pageEncoding="UTF-8"%>`,确保页面使用统一的编码格式。...
以下是几种常见的解决策略: 1. 文件读写:在使用`BufferedReader`或`FileWriter`等进行文件操作时,明确指定文件的编码格式,如`new FileReader(file, "UTF-8")`。 2. 网络通信:在网络通信中,如HTTP请求,需要...
中文乱码问题分析 ...中文乱码问题是 Java 和 JSP 开发中的一种常见问题,解决这些问题需要注意编码方式的一致性,避免在不同的编码方式之间的转换,确保在不同的交互过程中使用的编码方式保持一致。
乱码通常由以下几种原因导致: 1. **编码不匹配**:当文件被保存或读取时使用的字符编码与实际内容所使用的编码不一致。 2. **文件损坏**:文件本身存在损坏或错误,导致部分内容无法正确显示。 3. **系统设置问题*...
最后,解决中文乱码问题可以使用一种更好的解决方法,即生成一个只有字母和数字的序列作为文件名,而将原来带有中文的名字保存在数据库中,这样调用move_uploaded_file()就不会出现问题,下载的时候只需将文件名改为...
为了解决Flex应用程序在不同浏览器上的乱码问题,可以通过以下几种方法来实现: #### 1. 使用`useCodePage`属性 在Flex应用程序中,可以通过设置`useCodePage`属性为`true`来强制Flash Player使用Unicode编码,...
以上就是针对IReport中文不显示及乱码问题的十几种解决方案,每种情况都有其特定的解决办法。在尝试时,请根据自己的具体情况进行操作,相信总有一种方法能帮你解决问题。如果问题依然存在,建议查阅IReport的官方...