在我们的应用程序的网页上,商标符号(TM)显示为问号。但是,注册商标(R)有效。我们正在使用 JSP 标准库中的 c:out 标记显示该值。如果我在页面上放置 & amp;trade;或 & amp;# 8482;进行测试,则它们会按预期显示。
<td><c:out value="${item.description}"/></td> <!-- does not work -->
<td>yada yada yada Spiros™ yada yada yada</td> <!-- works -->
除此之外,我们还使用 YUI,在显示这些页面之前,它们会作为查询的结果显示在 YUI 数据表中(用户单击行以转到上述页面)。(TM)在该表中正确显示。这告诉我,我们正在从数据库中正确获取值,并且生成 XML 以发送回 YUI 数据表的服务器代码也可以工作。
那么,为什么在 YUI 数据表中正确显示相同的 String,而不是在普通的 JSP 中,除非我们将符号硬编码到页面上?
您可能有编码问题。如果您的 JSP 中没有显式编码:
<%@ page contentType="text/html; cht=UTF-8" pageEncoding="UTF-8" %>
尝试 UTF-8,如果这不起作用,请尝试 ISO-8859-1...或者如果您知道正确的编码,请使用它。
当 char 在浏览器 (通常是 Firefox) 中显示为?时,这意味着页面编码 (因为浏览器检测到它不会识别 char。一个很好的测试将是在 firefox 中查看-& gt;字符编码-& gt;UTF-8。如果 char 正确出现,则意味着 (tm) char 是使用 UTF-8 标准编码的。您必须指示您的页面将响应编码头设置为 UTF-8
如果这不起作用,你应该首先找出字符是如何编码的(例如,看看从数据库中读取的编码),并尝试将页面编码头设置为该编码。
第二种格式有效,因为(TM)char 被编码为一个已知的 html 实体,无论页面编码如何,浏览器都会解释它。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(51条)