大多数亚洲的开发者,例如中国、俄罗斯、日本、韩国,我们使用Apache Tomcat时遇到的第一个问题,通常就是乱码,无论是在Windows还是Linux,无论是Console中的Log还是Browser中的JSP,都存在编码错误的问题。Tomcat让我们亚洲开发人员认识了一种在其他平台闻所未闻的特殊编码,名为"ISO 8859-1"
的西欧语字符集,西欧语不适用于亚洲开发人员,通常都要对其进行一些设置,例如server.xml
中设置URIEncoding
属性,Servlet中设置setCharacterEncoding
,在logging.properties
中设置java.util.logging.ConsoleHandler.encoding
,这些四处杂乱无章的设置令人困扰。其实这是一个古老的问题,从Tomcat十多年前创建之初就是如此,经常是Tomcat对国际化的支持有问题吗?
确实如此,Tomcat一直到2018年11月16日才在9.0.14版本中进行了中文以及其他流行语言的支持,制作了数个LocalStrings_zh_CN.properties
文件commit↑,假如你用的Tomcat8以及以下版本,那Tomcat他就是不支持中文的。但我们其实不需要其对中文的支持,只需要他依照正常的情况去处理中文字符,这就足够了