Java 在HTML文件中显示汉字

Java 在HTML文件中显示汉字,java,html,guice-servlet,Java,Html,Guice Servlet,我们有一个servlet程序,它在servlet程序中使用HTML代码,即 HTML.append("<html>"); HTML.append(lnTag); HTML.append("<head>"); HTML.append(lnTag); HTML.append("<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>"); String titalsLang = reso

我们有一个servlet程序,它在servlet程序中使用HTML代码,即

HTML.append("<html>");
HTML.append(lnTag);
HTML.append("<head>");
HTML.append(lnTag);
HTML.append("<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>");
String titalsLang = resourceBundle.getString("eayslip.tan.title");  
HTML.append("<title>"+resourceBundle.getString("eayslip.tan.title")+"</title>");</i>

// and list of codes... 

out.print(HTML);
response.setContentType("text/html; charset=UTF-8");
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
HTML.append(“”);
append(lnTag);
HTML.append(“”);
append(lnTag);
HTML.append(“”);
String titalsLang=resourceBundle.getString(“eayslip.tan.title”);
append(“+resourceBundle.getString(“eayslip.tan.title”)+”);
//和代码列表。。。
打印(HTML);
setContentType(“text/html;charset=UTF-8”);
setHeader(“Pragma”,“无缓存”);
setHeader(“缓存控制”、“无缓存”);
response.setDateHeader(“Expires”,0);
我在调试代码时从属性文件中获取汉字。但是,一旦响应被发送到页面,在html页面中,我们就会得到问号


英语字符没有问题,而且显示正确。

我怀疑问题在于,您在调用
HttpServletResponse.getWriter()
后设置了内容类型(包括编码),假设
out
来自于此

ServletResponse.setContentType
的文档中:

如果在提交响应后调用此方法,则此方法无效。如果在调用getWriter或提交响应后调用响应,则不会设置响应的字符编码


基本上,您应该在调用
getWriter
之前设置响应中的所有标题。。。如果您正在调用
getOutputStream
而不是
getWriter
,那么您不应该。。。使用编写器处理文本数据,使用流处理二进制数据。

应该可以解决您的问题。欢迎使用堆栈溢出。请阅读编辑器帮助页面,以便将来您可以更容易地格式化您的帖子:@Sinistralis我使用了相同的概念,您建议给我一个链接。但我得到的和上一期一样。请尝试设置为您的HTML。谢谢您的回复。我听从你的指示。现在,中文字符显示在网页上。:)