先说后者,已经改了。
早期可以认为是 Tomcat 的设计者们压根就没考虑语种的问题,26 个英文字母全球通用就问你怕不怕。当然了,这也跟时间有关。目前通行的 UTF-8 方案,在 1998 年才刚刚出台,而等到 2001 年以后才开始在被广泛使用;而第一个生产版本的 Tomcat 3.0 1999 年就推出了,也没法提前预知什么。这个时期只能用比较丑陋的写法来处理非 ISO-8859-1 字符。
后来变成配置项了,可以通过修改 conf/server.xml 来指定字符集,但默认还是 ISO-8859-1。
再后来到了 Tomcat 8.0,变成默认字符集是 UTF-8 了,终于皆大欢喜。但历史遗留项目出于种种考虑,不可能直接在生产环境升级 Tomcat 了事,所以还是需要“特事特办”。
再说前者,没太明白题主说的 Java 指什么?是说 properties 之类的配置文件?这个锅得 Eclipse 来背,是 IDE 初始化项目时使用 ISO-8859-1 做为默认编码的(原因同上)。当然了,现在也是可以通过配置来修改,或者通过环境变量 JAVA_TOOL_OPTIONS 来控制。
结论:已经改了;难度不大,主要坑在于历史遗留项目上。