Monday, January 23, 2006

解决中文问题:
方法1、
在server.xml檔中加上URIEncoding="UTF-8"

在編碼和解碼的地方,分別用UTF-8的編碼即可。
URLEncoder.encode(key,"UTF-8")
URLDecoder.decode(request.getParameter("key"),"UTF-8")

方法2、http://www.jdon.com/idea/chinesejava.htm
  1. 开发和编译代码时指定字符集为UTF-8。JBuilder和Eclipse都可以在项目属性中设置。
  2. 使用过滤器,如果所有请求都经过一个Servlet控制分配器,那么使用Servlet的filter执行语句,将所有来自浏览器的请求(request)转换为UTF-8,因为浏览器发过来的请求包根据浏览器所在的操作系统编码,可能是各种形式编码。关键一句:
    request.setCharacterEncoding("UTF-8")。
    网上有此filter的源码,Jdon框架源码中com.jdon.util.SetCharacterEncodingFilter
    需要配置web.xml 激活该Filter。
  3. 在JSP头部声明:charset= UTF-8" %>。
  4. 在Jsp的html代码中,声明UTF-8:
  5. 设定数据库连接方式是UTF-8。例如连接MYSQL时配置URL如下:
    jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
    一般数据库都可以通过管理设置设定UTF-8
  6. 其他和外界交互时能够设定编码时就设定UTF-8,例如读取文件,操作XML等
其中有关数据库的也可以在入库时和出库时decode,由utf-8转换成8859-1(数据库默认编码).

No comments: