No estoy muy familiarizado con Arduino, pero veamos desde la perspectiva de la pantalla LCD.
Prácticamente todos los LCD de caracteres populares utilizan el controlador HD44780 en estos días (eso es lo que Admite la biblioteca LiquidCrystal ). Este controlador no admite UTF-8 directamente, cada carácter está representado por un solo byte.
Por lo tanto, debe convertir UTF-8 a caracteres de 8 bits manualmente. El controlador tiene un generador de caracteres integrado con 208 5x8 y 32 5x10, más hasta 8 caracteres definidos por el usuario (consulte createChar ). Debe asignar cada carácter de entrada a uno de los caracteres predefinidos / personalizados. Obviamente, solo puede mostrar un subconjunto de caracteres UTF8, debe decidir qué caracteres desea / puede mostrar.
La conversión en sí debería ser bastante sencilla: solo debe recorrer en iteración la cadena UTF8, asignando cada carácter a un solo byte. Lo más probable es que quieras usar una tabla de búsqueda para mantenerlo simple. Déjame saber si esto necesita una explicación adicional.