我需要得到UTF-8工作在我的Java web应用程序(servlet + JSP,没有框架使用),以支持äöå等常规芬兰文本和西里尔字母ЦжФ为特殊情况。
我的设置如下:
开发环境:Windows XP 生产环境:Debian
使用数据库:MySQL 5.x
用户主要使用Firefox2,也有Opera 9。使用的浏览器类型为:FF3、IE7、谷歌Chrome。
如何做到这一点?
我需要得到UTF-8工作在我的Java web应用程序(servlet + JSP,没有框架使用),以支持äöå等常规芬兰文本和西里尔字母ЦжФ为特殊情况。
我的设置如下:
开发环境:Windows XP 生产环境:Debian
使用数据库:MySQL 5.x
用户主要使用Firefox2,也有Opera 9。使用的浏览器类型为:FF3、IE7、谷歌Chrome。
如何做到这一点?
当前回答
如果你已经指定了连接池(mysql-ds.xml),在你的Java代码中,你可以像下面这样打开连接:
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
Connection conn = DriverManager.getConnection(
"jdbc:mysql://192.168.1.12:3308/mydb?characterEncoding=greek",
"Myuser", "mypass");
其他回答
我还想从这里添加这部分解决了我的utf问题:
runtime.encoding=<encoding>
非常详细的回答。只是想再添加一件事,这肯定会帮助其他人看到url上的UTF-8编码。
按照下面的步骤在firefox中的url上启用UTF-8编码。
在地址栏输入“about:config”。 使用过滤器输入类型搜索“network.standard-url”。encode-query-utf8”属性。 上述属性默认为false,将其设置为TRUE。 重新启动浏览器。
在IE6/7/8和chrome浏览器中,url默认使用UTF-8编码。
对于从消息包中显示Unicode字符的示例,我不需要应用“JSP页面编码”部分来在JSP页面上显示Unicode。我所需要的是“CharsetFilter”部分。
为了补充kosoant的答案,如果你使用Spring,而不是编写自己的Servlet过滤器,你可以使用他们提供的类org.springframework.web.filter.CharacterEncodingFilter,在你的web.xml中像这样配置它:
<filter>
<filter-name>encoding-filter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>FALSE</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding-filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
如果你已经指定了连接池(mysql-ds.xml),在你的Java代码中,你可以像下面这样打开连接:
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
Connection conn = DriverManager.getConnection(
"jdbc:mysql://192.168.1.12:3308/mydb?characterEncoding=greek",
"Myuser", "mypass");