在 windows 中更改 Tomcat 的 Charset.defaultCharset

Posted

技术标签:

【中文标题】在 windows 中更改 Tomcat 的 Charset.defaultCharset【英文标题】:Change Tomcat's Charset.defaultCharset in windows 【发布时间】:2012-07-05 18:31:56 【问题描述】:

我在 Windows 7 中使用 tomcat 6.0.32。 在一个非常简单的 servlet 内部,在 init 方法内部,我正在打印:

System.out.println(Charset.defaultCharset());

输出是:

windows-1253

据我所知,这是 JVM 中的 tomcat 启动方式,因为我在独立的 java 类中打印相同的内容,并且得到“UTF8”作为响应。

那么,如何将其更改为 UTF-8?

谢谢

【问题讨论】:

你试过request.getCharacterEncoding(); 吗?看看它打印了什么,无论如何你可以改变字符编码..但它取决于要求。看看这个维基页面wiki.apache.org/tomcat/FAQ/CharacterEncoding#Q1 我无法访问请求,因为我在 init 方法中工作。在任何情况下,这都不是请求响应问题,因为我需要使用 UTF8 编码才能读取文件而不是发送 UTF8 编码的响应。 【参考方案1】:

尝试将 (Windows) 环境变量 JAVA_TOOL_OPTIONS 设置为 -Dfile.encoding=UTF-8 并启动 Tomcat Server

将从这个链接获得更多想法: Setting the default Java character encoding

【讨论】:

不幸的是,这不起作用。设置 -Dfile.encoding=UTF-8 是正确的方法,但我并不认为 tomcat 将 JAVA_TOOL_OPTIONS 附加到 JAVA_OPTS。无论如何,我找到了解决方案。检查下面。【参考方案2】:

只需在 TOMCAT/bin 目录中创建一个 setenv.bat 文件,内容如下:

set "JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF8"

【讨论】:

正确的配置是-Dfile.encoding=UTF-8还是-Dfile.encoding=UTF8?我认为应该是UTF-8 正确的如答案中所述,即UTF8 - 检查这两个:1)***.com/questions/6031877/… 2)docs.oracle.com/javase/6/docs/technotes/guides/intl/…【参考方案3】:

对于作为 Windows 服务运行的 Tomcat,%JAVA_OPTS% 和 setenv.bat 答案在我的情况下都不起作用。

我在注册表中设置了选项“-Dfile.encoding=UTF8”:

"HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\tomcatstackTomcat\Parameters\Java --> 选项*

然后就可以了。

【讨论】:

【参考方案4】:

您也可以在 Tomcat 7.0 Windows 服务管理器中添加此设置。

来自Dr James Bayley's blog

【讨论】:

这个设置对我有用。我还有一个问题是这个设置只需要在 windows os 中,还是我们也需要在 linux 中定义?

以上是关于在 windows 中更改 Tomcat 的 Charset.defaultCharset的主要内容,如果未能解决你的问题,请参考以下文章

怎样在windows服务器下配置tomcat

将Maven的Web项目部署到windows的Tomcat里

如何更改tomcat7及以上版本内存设置

如何更改eclipse的tomcat版本

转换代码以将Windows中的文件读取到linux

windows server 2008R2 配置tomcat服务开机自启动