在Apache / Tomcat服务器中显示中文字符

时间:2014-10-15 20:21:24

标签: java apache jsp utf-8

我试图修改我的网络应用程序,以便它可以用于多种语言,但遇到一些困难并且仍然遇到问题。我使用Apache Struts框架(Java servlets和jsp页面)在Eclipse中开发。目前,如果我尝试创建一个jsp页面并让它显示中文字符,中文字符将在更加明显的地方正确显示。但是,如果我从Java类调用一个函数,它将只显示' ??'在浏览器中。我怀疑编译器是问题,但我想知道是否有人经历过类似的事情并且能够解决它。

这是我到目前为止所做的: 当我开始研究这个项目时,一切都是用ISO-8859-1编码的 我修改了我的IDE(eclipse),以便所有源文件都以UTF-8保存。 然后我修改了我们的数据库(Firebird),以便我显示的数据是UTF-8。 我修改了jsp文件,因此charset设置在头部 修改了web.xml文件以指定utf-8作为其编码

如果我创建一个简单的jsp页面并尝试显示中文字符,它将在浏览器中正确显示:

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </head>
    <body>
         <%="密碼" %>
    </body>
</html>

但是,如果我从Java类调用一个函数,它将只显示&#39; ??&#39;而不是中文字符:

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </head>
    <body>
    <%=com.enrolnet.shared.multilanguage.MultiLanguageTest.mtest() %>
    </body>
</html>

MultiLanguageTest:

public class MultiLanguageTest {
    public static String mtest() {
        return "密碼";
    }
}

任何人都对这里可能发生的事情有什么了解,以及如何解决它?

感谢您的时间

1 个答案:

答案 0 :(得分:1)

您应该将页面的编码设置为utf-8,而不仅仅是元标记。

<%@ page contentType="text/html; charset=UTF-8" %> 

取自Oracle Documentation