在 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的主要内容,如果未能解决你的问题,请参考以下文章