Hi, 如果有任何想法与我沟通, 请用: lifr_nj 在 msn.com
解决web application的本地化问题
上一篇 /
下一篇 2007-06-02 09:26:38
/ 个人分类:java
一个
java web application,开始只是支持英文,后来需要提供中文支持。前前后后搞了几天,终于全部解决。
这个程序基于 servlet/jsp+spring+hibernate,
数据库是MySql。我把问题分解为下面的问题
0) MySql支持中文
1) 字符串资源支持多国语言
2) 页面显示中文
3) 提交中文form
4) Ajax中包括中文
为了问题简单,server端都使用unicode,用utf8编码,包括MySql。
1 MySql支持中文
在mysql.ini中
default-character-set=utf8
在spring的context定义中,作如下设置
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="url">
<value><![CDATA[jdbc:mysql://localhost/echo?useUnicode=true&characterEncoding=UTF-8]]></value>
</property>
</bean>
2 字符串资源支持多国语言
字符串资源支持多国语言
也就是根据浏览器的locale,页面元素显示为用户能懂的文字。这里需要用到资源文件。
3 页面显示中文
对于servlet,写一个filter,在里面设置response.setContentType("text/html; charset=UTF-8");
对于jsp,在文件头加一行,<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
4 提交中文form
还是在上面的filter中,在从request里取得parameters之前,指定编码方式
request.setCharacterEncoding("utf8");这样request.getParameter的适合,就会用utf8的解码方式。
5 Ajax中包括中文
我用的是buffalo,它已经解决好这个问题了。所有中文都会用utf8编码后提交。
相关阅读:
- 2007-01-16 | java的ArrayList使用【转】 (caicai1724, 2007-4-27)
- 2007-01-18 | java的线程和多线程(1)【转】 (caicai1724, 2007-4-27)
- 2007-01-18 | java的线程和多线程(2)【转】 (caicai1724, 2007-4-27)
- 2007-01-18 | java的死锁【转】 (caicai1724, 2007-4-27)
- java的各种排序方法 (fanewoxiao, 2007-5-14)
- 专家为您详解JAVA数据库基本操作 (51testing, 2007-5-22)
- jtest5.0使用手册(一) (fishy, 2007-5-30)
- jtest5.0使用手册(二) (fishy, 2007-5-30)
- jtest5.0使用手册(三) (fishy, 2007-5-30)
- jtest5.0使用手册(四) (fishy, 2007-5-30)
收藏
举报
TAG:
java
本地化