我正在为 Raspberry Pi 制作一个显示一些文本的 OpenVG 应用程序,并且我需要支持外来字符(在本例中为波兰语)。我计划准备一个函数,将 unicode 字符映射到某种高级语言中的 C 中的文字,但现在在 C 中打印这些文字时存在问题。
鉴于以下代码:
//both output the "ó" character, as expected
char A[] = "\xF3";
wchar_t B[] = L"\xF3";
//"ś" is expected as output but instead I get character with code 0x5B - "["
char A[] = "\x15B";
wchar_t B[] = L"\x15B";
大多数波兰字符都有 3 位十六进制代码。当我尝试打印“ś”(0x15B)时,它会打印字符“[”(0x5B)。事实证明,我无法打印任何超过 2 位代码的 unicode 字符。
使用的数据类型是原因吗?我考虑过使用 char16_t 和 char32_t 但在系统中找不到头文件。