`

java 乱码解决办法

阅读更多

1、一般的jsp页面显示乱码
<%@ page contentType="text/html; charset=UTF-8"%>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

 

2、表单提交中文时出现乱码

jsp提交英文字符能正确显示,而提交中文时就会出现乱码。
原因:浏览器默认使用UTF-8编码方式来发送请求,而UTF- 8和GB2312编码方式表示字符时不一样,
这样就出现了不能识别字符

解决:再jsp页面设定 <%request.seCharacterEncoding("UTF-8");%>对请求进行统一编码
为了避免每页都要写request.setCharacterEncoding("UTF-8"),

建议使用过滤器对所有jsp进行编码处理,

过滤器——.java文件:
public class SetCharacterEncodingFilter implements Filter{

/*过滤器,解决中文乱码问题*/
protected String encoding = "UTF-8";
protected FilterConfig filterConfig = null;
protected boolean ignore = true;
public void destroy() {
// TODO Auto-generated method stub
this.encoding = null;
this.filterConfig = null;

}

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
try {
// Conditionally select and set the character encoding to be used
if (ignore || (request.getCharacterEncoding() == null)) {
String encoding = selectEncoding(request);
if (encoding != null)
request.setCharacterEncoding(encoding);
}

// Pass control on to the next filter
chain.doFilter(request, response);
} catch (IOException e) {

throw e;
} catch (ServletException e) {

throw e;
}


}

public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
String value = filterConfig.getInitParameter("ignore");
if (value == null)
this.ignore = true;
else if (value.equalsIgnoreCase("true"))
this.ignore = true;
else if (value.equalsIgnoreCase("yes"))
this.ignore = true;
else
this.ignore = false;

}
protected String selectEncoding(ServletRequest request) {
return (this.encoding);
}

}
过滤器——web.xml文件中的配置:
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>
net.better_best.www.utils.SetCharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<servlet-name>action</servlet-name>
</filter-mapping>

 

3、数据库连接出现乱码
只要涉及中文的地方全部是乱码,解决办法:在数据库的数据库URL中加上
String Url="jdbc:mysql://localhost/digitgulf?user=root&password=root&useUnicode=true&characterEncoding=UTF-8";
  并在页面中使用如下代码:
  response.setContentType("text/html;charset=UTF-8");
  request.setCharacterEncoding("UTF-8");

 

4、URL传值乱码问题解决,这个也是最麻烦的事情啦

如果是Tomcat的话,需要在server.xml里面的connector里面务必设置如下参数:
<Connector port="8080"

maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

enableLookups="false" redirectPort="8443" acceptCount="100"

debug="0" connectionTimeout="20000" useBodyEncodingForURI="true"

disableUploadTimeout="true" URIEncoding=”UTF-8”/>

设定URIEncoding=”UTF-8” useBodyEncodingForURI="true"

但是这样还是会出问题的,比如URL传递参数是奇数或者偶数时...

String techName= request.getParameter("selTechnicalArticlesTitle").trim();
//URL 传递值时用Encoder进行编码
java.net.URLEncoder.encode(techName, "UTF-8")
也可以在JSP页面:

       encodeURI(encodeURI(tname));

//对页面传来的字符进行解码:
java.net.URLDecoder.decode(techName,"UTF-8");

//多个参数传递

techType.do?techid=1&techName=中国&name=汉字

techid,techName,name是参数名

与你在Action当中用request.getParameter("techName") 一定要相同;

你传的时候名称与你页面查询条件输入框的名称一定要对应,因为Action当中取的是页面输入框的名称;

明白?

分享到:
评论

相关推荐

    java乱码自己解决的办法

    本文将深入探讨Java乱码的根源,并提供一系列实用的解决方案,帮助开发者有效应对这一挑战。 ### Java乱码根源 Java乱码主要由编码不一致引起,具体来说,当数据在不同环境(如输入、存储、读取)中采用不同的字符...

    java乱码问题解决方法

    Java 开发中常见的问题之一,解决这个问题需要了解 Java 的编码方式、JSP 中文乱码问题、Tomcat 5.5 中文乱码问题、JDBC ODBC Bridge 的 Bug 及其解决方法、Solaris 下 Servlet 编程的中文问题及解决办法等。...

    Java中压缩与解压--中文文件名乱码解决办法

    ### Java中压缩与解压——中文文件名乱码解决办法 #### 一、问题背景及原理分析 在Java中处理文件的压缩与解压时,经常会遇到中文文件名出现乱码的问题。这个问题主要源于Java中默认使用的编码方式与实际文件名...

    乱码终极解决办法java实现

    对于给定的"解决乱码终极办法"压缩包文件,很可能是包含了一些示例代码或工具,帮助开发者快速解决特定场景下的乱码问题。如果遇到具体问题,可以参考这些资源,结合本文的知识点,来找到最合适的解决方案。

    Java乱码问题解决

    ### Java乱码问题详解与解决方案 #### 一、问题背景 在Java开发过程中,尤其是在处理中文字符时,经常遇到字符编码不一致导致的乱码问题。由于Java默认使用Unicode编码,而在中国大陆地区,常见的字符集为GB2312...

    Java中文乱码解决之道

    阅读许多关于中文乱码的解决办法的博文后,发现对于该问题我们都(更加包括我自己)没有一个清晰明了的认识,于是LZ想通过这系列博文(估计只有几篇)来彻底分析、解决java中文乱码问题,如有错误之处望各位同仁指出...

    Java Web程序开发中字符乱码的原因与解决办法.pdf

    Java Web程序开发中字符乱码的原因与解决办法 字符乱码问题是Java Web程序开发过程中经常遇到的一个问题,它会对用户界面的友好性以及信息的准确传达造成很大的影响。为了解决这个问题,我们首先要了解字符集和字符...

    myeclipse代码中文乱码解决办法

    解决MyEclipse中文乱码问题的详细指南 MyEclipse是一款功能强大且流行的集成开发环境(IDE),广泛应用于Java开发领域。然而,在使用MyEclipse时,开发者们经常会遇到中文乱码的问题。这是因为MyEclipse的默认编码...

    jsch文件名中文乱码解决办法

    感谢你的下载,文件说明如下: *jsch的源文件 *jsch的依赖包 *用jsch源文件及依赖包构建的项目,便于修改其源码* ...如果乱码问题依然没解决,这个类也许能帮你找到你需要更改的编码类型。然后修改那三处地方。

    log4j乱码问题解决办法

    ### log4j乱码问题解决办法 #### 一、引言 在开发过程中,日志记录是必不可少的一个环节。良好的日志系统可以帮助开发者快速定位问题并进行调试。Log4j作为一款广泛使用的Java日志框架,在很多项目中扮演着重要...

    java读写文件避免中文乱码.docx

    Java 读写文件避免中文乱码 Java 语言在读写文件时,经常会 gặp到中文乱码的问题。这是因为 Java 默认使用的字符编码是 ISO-8859-1,而中文字符在这个编码中无法正确地表示。为了避免中文乱码,需要使用正确的...

    jdk-gui中文乱码解决办法.txt

    解决中文乱码问题亲测可用,欢迎关注http://blog.tbaqkj.com/,每日更新,总有你想要的!

    20 中文乱码解决办法

    本文将深入探讨“20种中文乱码解决办法”,并结合“SetCharacterEncodingFilter”这个类,来讲解如何有效地解决乱码问题。 首先,我们要理解中文乱码的根源。乱码通常出现在字符编码不一致的情况下,比如文件存储...

    JSP存到数据库乱码解决办法

    ### JSP存到数据库乱码解决办法 在Java Web开发中,尤其是使用JSP技术时,经常遇到的一个问题就是字符编码的问题。当我们将中文等非ASCII字符的数据存储到数据库时,经常会遇到乱码的情况。这主要是因为不同系统、...

    JSP中乱码解决办法

    ### POST方式下的乱码解决方案 #### 1. 使用`request.setCharacterEncoding()`方法 在JSP页面中,可以通过设置`request`对象的字符编码来解决POST请求中的乱码问题。具体做法是在获取参数前调用`request.set...

    oracle安装时中文乱码解决办法

    Oracle 安装时中文乱码解决办法 Oracle 安装时中文乱码是由于 JVM 没有在默认的系统字体目录下找到需要的字体所致。解决问题的关键是将中文字体文件复制到正确的目录下,并配置相应的字体路径。 首先,需要在 ...

    JSP中文乱码问题解决办法

    JSP 中文乱码问题解决办法 JSP 页面中中文乱码问题是指在 JSP 页面中使用中文时,页面显示乱码的现象。这种问题的解决办法可以从多方面入手,包括设置页面的字符编码、使用 POST 方式提交表单、使用 GET 方式提交...

    jsch-0.1.53 使用sftp协议上传下载文件名中文乱码解决办法

    jsch-0.1.53 不支持修改编码格式,sftp.setFilenameEncoding("GBK");这样修改是不起作用的,所以必须修改源码。此处是修改源码后重新导出的jar包。

    myEclipse乱码解决办法

    在Myeclipse导入一个项目,有中文乱码问题,解决方法如下: 一、将整个project设置编码UTF-8(UTF-8可以最大的支持国际化) windows-&gt;Preferences-&gt;general-&gt;Workspace-&gt;Text file encoding-&gt;Other框中的Text ...

    在程序开发中的乱码问题解决办法

    ### 在程序开发中的乱码问题解决办法 #### 知识点概述 在程序开发过程中,中文乱码问题一直是困扰很多开发者的一大难题。特别是在涉及到不同编码格式处理时,如果不注意编码设置,很容易出现乱码现象。本文将从多...

Global site tag (gtag.js) - Google Analytics