使用 Servlet 的 filter 执行语句, 将所有来自浏览器的请求(request)转换为 UTF-8,因为浏览器发过来的请求包根据浏览器所 在的操作系统编码,可能是各种形式编码。关键一句:
request.setCharacterEncoding("UTF-8")。 网上有此 filter 的源码,Jdon 框架源码中 com.jdon.util.SetCharacterEncodingFilter 需要配置
web.
xml 激活该 Filter。 在 JSP 头部声明:。 在 Jsp 的 html 代码中,声明 UTF-8:
设定数据库连接方式是 UTF-8。例如连接 MYSQL 时配置 URL 如下:
jdbc:
mysql://localhost:3306/test?useUnicode=true&;characterEncoding=UTF-8 一般数据库都可以通过管理设置设定 UTF-8 其他和外界交互时能够设定编码时就设定 UTF-8,例如读取文件,操作 XML 等。 笔者以前在 Jsp/Servlet 时就采取这个原则,后来使用 Struts、Tapestry、EJB、Hibernate、Jdon 等框架时,从未被乱码困扰过,可以说适合各种架构。希望本方案供更多初学者分享,减少 J ava/J2EE 的第一个拦路虎,也避免因为采取一些临时解决方案,导致中文问题一直出现在新的 技术架构中。