我们有一个使用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
(以及地区和国家)。