JSP и символ торговой марки - PullRequest
0 голосов
/ 30 мая 2009

На веб-страницах нашего приложения символ торговой марки (TM) отображается в виде знака вопроса. Зарегистрированный товарный знак (R) работает, хотя. Мы отображаем значение с помощью тега c: out в стандартной библиотеке JSP. Если я поставлю и торгую; или ™ на странице, чтобы проверить это, они отображаются так, как они должны.

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

Чтобы добавить к этому, мы также используем YUI, и прежде чем отобразить эти страницы, они отображаются в таблице данных YUI в качестве результата запроса (пользователь нажимает на строку, чтобы перейти на страницу, описанную выше). ). (ТМ) правильно отображается в этой таблице. Это говорит мне о том, что мы правильно выбираем значение из нашей базы данных, а также работает серверный код, генерирующий XML для отправки обратно в таблицу данных YUI.

Так почему же та же строка отображается правильно в таблице данных YUI, а не в обычной JSP, если мы не жестко закодировали символ на странице?

Ответы [ 2 ]

1 голос
/ 30 мая 2009

Возможно, у вас проблема с кодировкой. Если у вас нет явной кодировки в вашем JSP:

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

тогда пришло время добавить один. Попробуйте UTF-8, и если это не работает, попробуйте ISO-8859-1 ... или, если вы знаете правильную кодировку, используйте это.

0 голосов
/ 30 мая 2009

Когда символ появляется как? внутри браузера (обычно Firefox) это означает, что кодировка страницы (как она обнаружена браузером не распознает символ. Хорошим тестом будет View-> Character Encoding-> UTF-8 в firefox. Если символ отображается правильно, то это означает, что символ (tm) кодируется с использованием стандарта UTF-8. Вы должны указать своей странице установить заголовок кодировки ответа на UTF-8. Это должно сработать сейчас для вас.

Если это не сработает, вы должны сначала выяснить, как кодируется символ (например, посмотрите, какая кодировка считывается из базы данных) и попытаться установить заголовок кодировки страницы в эту кодировку.

Второй формат работает, потому что (TM) char кодируется как известная HTML-сущность, которую браузер интерпретирует независимо от кодировки страницы.

...