我需要得到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。
如何做到这一点?
当前回答
非常详细的回答。只是想再添加一件事,这肯定会帮助其他人看到url上的UTF-8编码。
按照下面的步骤在firefox中的url上启用UTF-8编码。
在地址栏输入“about:config”。 使用过滤器输入类型搜索“network.standard-url”。encode-query-utf8”属性。 上述属性默认为false,将其设置为TRUE。 重新启动浏览器。
在IE6/7/8和chrome浏览器中,url默认使用UTF-8编码。
其他回答
我遇到了类似的问题,但是,在我用apache commons压缩的文件的文件名中。 所以,我用这个命令解决了它:
convmv --notest -f cp1252 -t utf8 * -r
这对我来说很有效。希望它能帮助到任何人;)
当我们想要使用Java访问MySql表时,这是用于希腊编码的:
在JBoss连接池中使用以下连接设置(mysql-ds.xml)
<connection-url>jdbc:mysql://192.168.10.123:3308/mydatabase</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>nts</user-name>
<password>xaxaxa!</password>
<connection-property name="useUnicode">true</connection-property>
<connection-property name="characterEncoding">greek</connection-property>
如果你不想把它放在JNDI连接池中,你可以将它配置为JDBC-url,如下所示:
jdbc:mysql://192.168.10.123:3308/mydatabase?characterEncoding=greek
为我和尼克,所以我们永远不会忘记,浪费时间.....
我还想从这里添加这部分解决了我的utf问题:
runtime.encoding=<encoding>
关于@kosoant回答....中提到的CharsetFilter
在tomcat web.xml中有一个内置的Filter(位于conf/web.xml)。过滤器名为setCharacterEncodingFilter,默认情况下是注释的。你可以取消注释(请记住取消注释它的过滤器映射)
此外,不需要在web.xml中设置jsp-config(我已经为Tomcat 7+测试了它)
对于从消息包中显示Unicode字符的示例,我不需要应用“JSP页面编码”部分来在JSP页面上显示Unicode。我所需要的是“CharsetFilter”部分。