Firefox и волшебный персонаж (Â) при выходе из ® - PullRequest
0 голосов
/ 23 апреля 2009

Я убираю ® (регистрационный символ) в Firefox для отправки в форме, поскольку при вводе этого символа в Javascript скрипт ведет себя странно.

Тем не менее, я должен использовать неэкранированную (..) версию символа, поскольку он передается бэкэнду (где у меня нет контроля), а вывод представляет собой файл PDF, который использует неэкранированный ® для отображения в PDF

Я могу удалить символ ® следующим образом:

unescape("%AE")

Однако ... когда я просматриваю ® в файле PDF, он отображается как ®, это происходит только в Firefox, а не в Internet Explorer.

Есть ли способ заставить это работать в Firefox 2/3?

Спасибо,
Andrew

1 Ответ

3 голосов
/ 23 апреля 2009

AFAIK, после эскейпинга Mozilla возвращает Unicode-представление ®, а IE нет. («% C2% AE» в шестнадцатеричном формате и %C2 означает, что в PDF появляется странный символ Â.) Internet Explorer и Mozilla по-разному экранируют строки. Вы должны установить явную кодировку символов, в основном UTF-8.

MDC: функции escape и unescape :

Функции escape и unescape делают не работает должным образом для не ASCII персонажи и были устарели. В JavaScript 1.5 и выше используйте encodeURI, decodeURI, encodeURIComponent и decodeURIComponent.

* 1015 MSDN *:

Метод unescape возвращает строку значение, которое содержит содержимое charstring. Все символы закодированы с шестнадцатеричной формой% xx заменены их набором символов ASCII эквиваленты.

Символы, закодированные в формате% uxxxx (Символы Юникода) заменяются на символ Unicode с шестнадцатеричным кодировка хххх.

...