ISO-8859-15中的Tomcat不能编写包含拉丁字符的文件名



我们有一个使用tomcat的文件。encoding=ISO-8859-15,我们无法更改它,因为我们使用了一些外部库,并且只能在ISO-8859-15。

当我们编写一个文件时,内容会被正确保存,但文件名不会。

我们需要将文件的内容存储在ISO-8859-15中(tomcat默认值以-Dfile.concoding=ISO-8859-15-Duser.language=es-Duser.aregion=es-Dusser.country=es开头),但当我们尝试保存名为"áéíóú.txt"的文件时,它会将文件写入?????。txt和内容。

我尝试过将-Dsun.jnu.encoding更改为UTF-8,但它不起作用。我们使用jdk 1.6。

奇怪的是,如果我在Ubuntu 15.10中使用Eclipse中的相同参数(和相同的系统属性)启动tomcat,但在CentOS 6.4版中没有,它会起作用。

尝试添加:

LANG="es_ES.iso885915@euro"

到Tomcat配置文件(在CentOS中,应该是/etc/tomcat/tomcat.conf)并重新启动它。如果您喜欢稍微不同的编码系统(如"es_es.iso88591"),locale -a会列出系统中可用的编码系统。

顺便说一句,也许使用LANG可以避免设置-Duser.language(以及地区和国家)。

最新更新