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

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

使用 Hibernate 从数据库检索后,使用 eclipse 调试器检查时会正确显示字符串字段。

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

charset 指令出现在 HTML 标头中:

也许我需要在我的 struts2 或tiles 配置中添加一些东西?

有帮助吗?

解决方案

你可以尝试这样的事情。

摘自sun的页面 字符集和编码。我认为这必须是 jsp 中的第一行。

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

其他提示

天啊——事实证明,原因完全是WTF?

我们所有的平铺响应都是由一个自行开发的 servlet 提供的,该 servlet 忽略了

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

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

TilesDispatchExtensionServlet :该死的建筑宇航员,我向你们挥舞拳头。

尝试在 <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"> 

你需要使用过滤器。看:

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top