在Windows中更改Tomcat的Charset.defaultCharset

non*_*uco 18 java tomcat servlets character-encoding tomcat6

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

System.out.println(Charset.defaultCharset());
Run Code Online (Sandbox Code Playgroud)

输出是:

windows-1253
Run Code Online (Sandbox Code Playgroud)

据我所知,这是tomcat在JVM中的启动方式,因为我在独立的java类中打印相同的内容,并将"UTF8"作为响应.

那么,我怎样才能将其更改为UTF-8?

谢谢

non*_*uco 39

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

set "JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF8"
Run Code Online (Sandbox Code Playgroud)


小智 14

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

截图

来自James Bayley博士的博客


小智 6

对于作为Windows服务运行的Tomcat,%JAVA_OPTS%和setenv.bat都不适用于我的情况.

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

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

然后它工作.