怀疑将Stuts2 Tiles Tomcat更改为UTF-8吗?

时间:2020-03-05 18:51:18  来源:igfitidea点击:

我遇到了一些国际化问题:

我的UTF-8字符串字段在浏览器中呈现为????从数据库返回后。

使用Hibernate从数据库中检索后,使用Eclipse调试器检查时可以正确显示String字段。

但是Struts2 / Tiles将这些字符串渲染为????在发送到浏览器的HTML中。

charset指令位于HTML标头中:

也许我需要在struts2或者tile配置中添加一些内容?

解决方案

回答

尝试在<html />元素上设置lang属性。

HTML示例:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">

XHTML示例:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">

回答

我们可以尝试这样的事情。

它取自sun在"字符集和编码"页面上。
我认为这必须是jsp的第一行。

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

回答

OMG原来,原因是总的WTF?

我们所有的图块响应均由本地servlet负责,该servlet忽略了

&lt;%@页面contentType =" text / html; charset = UTF-8"%>

指令(还有谁知道什么)。

" TilesDispatchExtensionServlet":血腥的建筑宇航员,我对我摇了拳。

回答

我们需要使用过滤器。看:

http://wiki.apache.org/tomcat/Tomcat/UTF-8