java中可以出现的中文乱码的集中解决_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java中可以出现的中文乱码的集中解决

java中可以出现的中文乱码的集中解决

 2014/10/2 18:25:06  确实比较男  程序员俱乐部  我要评论(0)
  • 摘要:从学习javaweb开始就会经常遇到中文乱码,今天就做以下记录:1.要避免项目中遇到乱码,首先就是在搭建项目的设置工作空间的字符编码,若是多人开发,就更应该做到统一,在eclipse中选择widnow->preferences->genreal->workspace,在这里设置工作空间的字符编码,我通常都会设置成utf-81.1最好的方式就是所有的都统一用一种编码,在所有jsp页面中设置编码为utf-8,这样可以很大程度上避免乱码。在jsp的开头设置编码<
  • 标签:解决 Java 文乱码

从学习javaweb开始就会经常遇到中文乱码,今天就做以下记录:

1. 要避免项目中遇到乱码,首先就是在搭建项目的设置工作空间的字符编码,若是多人开发,就更应该做到统一,在eclipse中选择widnow -> preferences -> genreal -> workspace,在这里设置工作空间的字符编码,我通常都会设置成utf-8

1.1 最好的方式就是所有的都统一用一种编码,在所有jsp页面中设置编码为utf-8,这样可以很大程度上避免乱码。在jsp的开头设置编码

?

class="html"><%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

2. 在前台向后台发送请求的时候也可能会出现中文乱码,这里又要分请求的方式,

2.1 若是采用get请求出现的中文乱码,那么就有两种解决方法

第一种就是设置tomcat服务器的server.xml这个文件,找到下面的这个段代码,添加上URIEncoding="UTF-8",这种方法最简单

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>

第二种就是在代码中使用String的构造方法转码,首先使用request.getParamter获取到参数,在用这个字符串构造出指定字符编码的String,eg:

new String(request.getParamter("xxx","utf-8")

若是在js中请求后台,也是使用get的方式请求,还可以使用javascript提供的encodeURI这个方法进行转码,然后再后台java中使用URLDecode.decode()进行解码,在java中有URLEncode.encode(),URLDecode.decode() 这个两个方法,一个是转码,一个是解码,对应的jsavascript中也有类似的两个方法。

2.2 若采用的是post方式请求后台出现乱码,也有几种方式解决:

第一种 使用request.setcharacterencoding这个方法设置请求内容的编码,这个方法只对post方式起作用就,自己也可以自己写一个过滤器来设置编码。

第二种 若项目中使用了Struts2,那么很简单,在struts.xml中配置一个参数

<constant name="struts.i18n.encoding" value="utf-8" />

第三种 若使用了spring也简单,配置一个spring中提供的拦截器:

<filter>
    //过滤器使用spring类CharacterEncodingFilter
             <filter-name>encodingFilter</filter-name>
             <filter-class>
                        org.springframework.web.filter.CharacterEncodingFilter
             </filter-class>
             <init-param>
                        <param-name>encoding</param-name>
    //过滤器过滤后的编码为utf-8
                        <param-value>utf-8</param-value>
             </init-param>
  </filter>
  <filter-mapping>
    //过滤所有的路径:/*代表所有的路径
             <filter-name>encodingFilter</filter-name>
             <url-pattern>/*</url-pattern>
  </filter-mapping>

3. 从后台采用request.getWriter的流形式向前台写内容,若是出现乱码,采用response.setcharacterencoding设置编码,可以解决乱码,还可以采用response.setContentType("text/html; charset=utf-8")来设置页面的编码

4. 后台存入数据到数据库中也有可能会出现乱码,在取出来也就是是乱码,解决的方式就是设置数据库的字符编码,设置字符编码为utf-8,这个要看使用的什么数据库,这里说下mysql中设置数据库中的编码,在数据安装完成之后配置mysql数据库的字符编码为utf-8;若是数据库已经安装了可以到mysql的安装目录中找到配置启动方式:


?

?

?

?

发表评论
用户名: 匿名