2

Есть страница, на которой у меня есть специальные символы, и когда вы извлекаете значения из них через javascript, я получаю нечетное преобразование. Символ «Œ» возвращается как «R», а его нижняя версия «œ» возвращается как «S». Это ограничение javascript или, возможно, это браузер. Это от тестирования в firefox. Также это извлекается через клиент-реплика (Jssh/MozRepl), поэтому кажется, что это может быть проблемой для самих клиентов, а не для браузера.Специальные символы Javascript возвращаются некорректно

ответ

3

У вас, вероятно, проблема с кодировкой. Существует множество возможностей для неправильной обработки кодировки текста. Если вы разместите какой-либо код, мы сможем помочь вам его найти.

+0

var outstream = transport.openOutputStream (Ci.nsITransport.OPEN_BLOCKING, 0, 0); это выходной поток, который я использую в javascript (не так много, что я могу настроить в firefox из того, что могу сказать, поскольку документы не помогают слишком много) –

+1

, очевидно, firefox имеет потоки nsITransport, установленные в UTF-8, поэтому любые символы выше 255 не отображается правильно. –

+0

Можете ли вы поделиться, как вам удалось это исправить? возможно, какой-то пример кода поможет. –

0

Выходные потоки не являются безопасными для сценариев для символов, отличных от ASCII, поэтому вам необходимо обернуть поток в nsIBinaryOutputStream, nsIUnicharOutputStream или nsIConverterOutputStream.

+0

Я только что закончил преобразовывать их в массив кодов символов и выводить их и преобразовывать. Это было только с символами выше 255 кодов символов. Я не видел хорошей документации nsITransport, но вы можете открыть любой из этих потоков, используя openOutputStream? –

+0

Что вы делаете, так это передать существующий поток в качестве параметра при инициализации потока обертки. – Neil

Смежные вопросы