【问题标题】:JSPs and trademark symbolJSP 和商标符号
【发布时间】:2009-05-29 23:27:38
【问题描述】:

在我们应用程序的网页上,商标符号 (TM) 显示为问号。不过,注册商标 (R) 有效。我们在 JSP 标准库中使用 c:out 标记显示该值。如果我把 ™或 ™在页面上进行测试,它们会按预期显示。

<td><c:out value="${item.description}"/></td> <!-- does not work -->
<td>yada yada yada Spiros&trade; yada yada yada</td> <!-- works -->

此外,我们还使用 YUI,在显示这些页面之前,它们会作为查询结果显示在 YUI 数据表中(用户单击一行以转到上述页面)。 (TM)在该表中正确显示。这告诉我,我们正在正确地从数据库中获取值,并且生成 XML 以发送回 YUI 数据表的服务器代码也可以正常工作。

那么为什么相同的字符串在 YUI 数据表中正确显示,但在普通 JSP 中却没有,除非我们将符号硬编码到页面上?

【问题讨论】:

  • 页面使用什么字符编码?

标签: java jsp symbols


【解决方案1】:

您可能遇到了编码问题。如果您的 JSP 中没有显式编码:

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

那么是时候添加一个了。尝试 UTF-8,如果不起作用,请尝试 ISO-8859-1 ... 或者如果您知道正确的编码,请使用它。

【讨论】:

    【解决方案2】:

    当字符显示为 ?在浏览器(通常是 Firefox)中,这意味着页面编码(因为它被浏览器检测到将无法识别字符。一个很好的测试是在 Firefox 中查看->字符编码->UTF-8。如果字符显示正确,那么这意味着 (tm) 字符是使用 UTF-8 标准编码的。您必须指示您的页面将响应编码标头设置为 UTF-8。这应该适合您。

    如果这不起作用,您应该首先找出字符是如何编码的(例如查看从数据库中读取的编码)并尝试将页面编码标头设置为该编码。

    第二种格式有效,因为 (TM) 字符被编码为已知的 html 实体,浏览器会解释该实体,而不管页面编码如何。

    【讨论】:

    • 没有“使用 unicode 编码”这样的东西 Unicode 是字符集,而不是编码。您似乎将 Unicode 和 UTF-8 混为一谈。
    • 真 :-)。被带走了。已编辑。
    猜你喜欢
    • 2018-06-04
    • 2013-10-22
    • 1970-01-01
    • 2013-10-27
    • 2015-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多