Я работаю над встроенной системой, которая предоставляет выходные строки. Некоторые из этих строк выходят с пользовательскими символами. То, что я пытаюсь сделать, это прочитать их и декодировать их в похожие символы Unicode. Проблема заключается в том, что, хотя я могу проверять сообщения, полученные мной в инструментах проверки Chrome (точнее, вкладку Network), строка редактируется на символ 65533 (символ замены).Пытается отредактировать строку во время выполнения
код я пытался использовать это:
textLines[3] = textLines[3].replace ("\xCD", "\x25a0");
Буквы на вкладке Inspect отображаются в виде I (U + 00CD), но на веб-странице он появляется как символ замены. Я уже пытался установить кодировку скрипта в UTF-16, но он не работает. Шрифт, который я использую, это Lucida Console, который должен иметь этот символ.
Что я могу сделать, чтобы определить «реальное» значение и изменить его во время выполнения?
EDIT: Настоящей кодировки нет. Символ читается непосредственно с ЖК-экрана. Значение, которое я получаю для него, - 205. Это проблема.
Формат, который я пытаюсь декодировать, это UTF-16.
Вы должны были добавить это как комментарий, так как это не ответ на вашу проблему. –
Это не неуклюжий. Сеть использует utf-8, но это произвольно. В вашем дизайне вам нужно выбрать промежуточную форму. Поэтому, если во встроенной системе вы получаете бит-поток с нестандартным размером слова (например: 6 бит следуют за полем 3 бит), я бы стандартизовал тогда до 8 бит или 16 бит.Затем, чтобы показать, я перевел бы формат вывода, который соответствует отображению информации. У вас может быть много видов отображения. Можно быть веб-страницей utf-16. Другим может быть подключение RS-485 к контроллеру. –