1

我正在为 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 但在系统中找不到头文件。

4

1 回答 1

1

这就是这个

char A[]={'\xc5','\x9b'};

c59b 是 UTF-8 的“ś”(0x15B)。

于 2015-01-15T16:32:49.883 回答