Я хотел бы купить ЖК-экран от Arduino, чтобы отобразить некоторые результаты веб-http-звонка; Web API возвращает текст в формате JSON, закодированный в UTF-8.
Я читал, что ICU - это способ обработки Unicode в программах на C / C ++ для Arduino.
Мои вопросы:
Смогу ли я отображать символы UTF-8 на этот вид экрана ?
Есть ли (доступные) символьные ЖК-экраны, способные отображать символы UTF-8?
Ответы:
Я не так хорошо знаком с Arduino, но давайте посмотрим на это с точки зрения ЖК-дисплея.
В настоящее время практически все популярные символьные ЖК-дисплеи используют контроллер HD44780 (это то, что поддерживает библиотека LiquidCrystal ). Этот контроллер не поддерживает UTF-8 напрямую, каждый символ представлен одним байтом.
Таким образом, вам нужно конвертировать UTF-8 в 8-битные символы вручную. Контроллер имеет встроенный генератор символов с 208 5x8 и 32 5x10 символами, плюс до 8 пользовательских символов (см. CreateChar ). Вам необходимо сопоставить каждый входной символ с одним из предопределенных / пользовательских символов - очевидно, вы можете отображать только подмножество символов UTF8, вам нужно решить, какие символы вы хотите / можете отобразить.
Само преобразование должно быть довольно простым - вам просто нужно перебрать строку UTF8, отображая каждый символ в один байт. Скорее всего, вы захотите использовать справочные таблицы для простоты. Дайте мне знать, если это требует дальнейшего объяснения.
источник
Юникод сложен и велик, в целом он слишком велик для Arduino. В текущей версии в общей сложности более 100000 символов, включая клинопись, иероглифы, клингон и не говоря уже о многих тысячах китайских символов.
Так что если вы действительно хотите показать несколько символов Юникода на Arduino:
Получите графический дисплей. Тот, который вы упоминаете, является отображением символов, он может отображать только фиксированный набор из 256 символов.
Определите небольшое подмножество символов, которые вы хотите обработать. Есть несколько предопределенных подмножеств, например, многоязычные европейские подмножества выглядят хорошо.
Получить несколько шрифтов и раздеть их до нужного набора. Обратите внимание, что даже отображение может быть намного сложнее, чем то, к чему вы привыкли в ASCII, из-за сочетания символов, двунаправленной записи и тому подобного. Лучше всего придерживаться латинских символов без сочетания акцентов. С кириллицей и греческим тоже должно быть все в порядке, как и с любой последовательностью символов слева направо.
Может быть, вы могли бы использовать внешнюю память для хранения шрифтов.
Тогда есть множество других тем, которые вам, вероятно, не нужны, например, сортировка и поиск, см. Стандарт Unicode и его приложения (он большой!).
Забудьте ICU, ему нужны мегабайты памяти.
источник