适用于 STm32 微控制器的 Touch gfx 上的西里尔语和希伯来语语言

问题描述 投票:0回答:1

您好,我正在开发微控制器的嵌入式应用程序,用于在显示器上显示数据。 微控制器是STM32,我使用的图形工具是touch gfx。 我想用西里尔语和希伯来语显示一些文本。 当我在 touch gfx 的 GUI 中写入文本时,我可以正确地看到显示屏上的文本

但是当我尝试运行以下代码以从代码 stm32cubeide 传递一些文本时

我的显示屏上显示了一些问号..

这是导致俄语和希伯来语文本出现问题的代码

textArea4.setColor(touchgfx::Color::getColorFrom24BitRGB(236, 209, 18));//extra time?
            Unicode::strncpy(textArea4Buffer, parArea4[tipolingua][5], Unicode::strlen(parArea4[tipolingua][5])+1);
            textArea4.invalidate();

const char* parArea4[5][6] = { { "Preheating", "Ready", " ", "Baking", "Extra time", "Extra time?" }, { "Preriscaldo", "Pronto", " ", "Cottura", "Extra time", "Extra time?" }, { "Prechauffage", "Pret", " ", "Cuisson", "Extra time", "Extra time?" }, { "Предварительный нагрев", "Готовый", " ", "Выпечка", "дополнительное время", "дополнительное время?" }, { "חימום מוקדם", "מוּכָן", " ", "אֲפִיָה", "זמן נוסף", "זמן נוסף" } };

知道如何修复它吗?

非常感谢

stm32 touchgfx
1个回答
0
投票

例如:

'П' UTF-8 '0xD0 0x9F'
,使用
char[]
时,默认使用第一种方法。

  1. strncpy(UnicodeChar *RESTRICT dst, const char *RESTRICT src, uint16_t maxchars)
  2. strncpy(UnicodeChar *RESTRICT dst, const UnicodeChar *RESTRICT  src, uint16_t maxchars)

对于Touchgfx,

0xD0
0x9F
是两个未知字符,所以'?'

© www.soinside.com 2019 - 2024. All rights reserved.