JSP和商标符号
在我们的应用程序的网页上,商标符号(TM)显示为问号。虽然注册商标(R)有效。我们使用JSP标准库中的c:out标签显示值。如果我把&交易;或者™在页面上测试这些,那些显示,因为他们应该。JSP和商标符号
<td><c:out value="${item.description}"/></td> <!-- does not work -->
<td>yada yada yada Spiros™ yada yada yada</td> <!-- works -->
要添加到这一点,我们还使用YUI,和之前我们显示这些页面,他们在YUI的数据表作为查询的结果显示(上一行用户点击进入上面描述的页面)。 (TM)在该表中正确显示。这告诉我,我们正在从我们的数据库中正确地获取值,并且生成要发回到YUI数据表的XML的服务器代码也可以工作。
那么为什么相同的字符串在YUI数据表中正确显示,而不是在普通的JSP中,除非我们将符号硬编码到页面上?
你可能有一个编码问题。如果您在JSP中没有显式编码:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
那么是时候添加一个了。试试UTF-8,如果这不起作用,请尝试ISO-8859-1 ...或者如果您知道正确的编码,请使用它。
当一个字符显示为?在浏览器中(通常是Firefox),这意味着页面编码(因为它被浏览器检测到不会识别字符),一个好的测试是在Firefox中查看字符编码 - > UTF-8。这意味着(tm)char使用UTF-8标准进行编码,您必须指示您的页面将响应编码标头设置为UTF-8,这应该可以立即为您工作
如果这样做不起作用您应该首先了解如何对字符进行编码(例如,查看从数据库中读取的编码)并尝试将页面编码标头设置为该编码。
第二种格式可以工作,因为(TM)字符是编码为浏览器解释的已知html实体,无论页面编码如何。
“使用unicode编码”没有这样的东西。Unicode是一个字符集,而不是编码。您似乎将Unicode和UTF-8混为一谈。 – 2009-05-30 00:35:42
真:-)。被带走了。编辑。 – 2010-05-27 20:50:56
页面使用什么字符编码? – 2009-05-29 23:30:28