我在用户的主目录中安装了 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