Answers:
我对Arduino不太熟悉,但是让我们从LCD的角度来看它。
如今,几乎所有流行的字符LCD都使用HD44780控制器(LiquidCrystal库支持此功能)。该控制器不直接支持UTF-8,每个字符用一个字节表示。
因此,您需要手动将UTF-8转换为8位字符。控制器具有一个内置的字符生成器,该字符生成器具有208个5x8和32个5x10字符,以及最多8个用户定义的字符(请参见createChar)。您需要将每个输入字符映射到预定义/自定义字符之一-显然,您只能显示UTF8字符的子集,您需要确定要/可以显示的字符。
转换本身应该非常简单-您只需要遍历UTF8字符串,将每个字符映射到单个字节即可。您很可能希望使用查找表来使其保持简单。让我知道是否需要进一步说明。
Unicode既复杂又庞大,对于Arduino而言,它太大了。在当前版本中,总共有超过100000个字符,包括楔形文字,象形文字,克林贡语,更不用说成千上万的汉字了。
因此,如果您真的想在Arduino上显示一些Unicode字符:
获取图形显示。您提到的是一个字符显示,它只能显示固定的一组256个字符。
定义要处理的一小部分字符。有一些预定义的子集,例如“ 多语言欧洲子集”看起来不错。
获取一些字体并将其剥离为所需的字体。请注意,由于结合了字符,双向写入等,甚至显示也比您从ASCII所显示的要复杂得多。最好的做法是坚持使用拉丁字符而不加任何重音符号。西里尔字母和希腊语也应该没问题,就像任何从左到右的简单字符序列一样。
也许您可以使用一些外部存储器来存储字体。
然后,您可能不需要很多其他主题,例如排序和搜索,请参阅Unicode标准及其附件(很大!)。
忘记ICU,它需要兆字节的内存。