centos 5.5 + tomcat 6.0 + sun jvm = ???? 而不是俄语字符

centos 5.5 + tomcat 6.0 + sun jvm = ???? 而不是俄语字符

我在用户的主目录中安装了 jdk 1.6、tomcat 6。当我将我的应用程序部署到服务器(无论是 war 还是 explosive)时,我所有的俄文字母(response.getWriter().write("SOME_RUSSIAN_TEXT_HERE"))都变成了'?':?????? 在开发机器上安装的 WinXP32+tomcat 6 下一切正常。

文件字符集为UTF8。

locale命令:

LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=

tomcat连接器设置:

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" useBodyEncodingForURI="true" URIEncoding="UTF-8"/>

答案1

您生成的 html 页面是否具有正确的标题,例如?

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru" >
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="content-language" content="ru" />

如果它不提供它们 - 您的网络服务器可以为整个网站提供字符集。

您可以通过命令 lynx -head -dump 检查这一点http://my.websyte.com

相关内容