我正在为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但是系统中找不到头文件。
答案 0 :(得分:1)
这就是这个
char A[]={'\xc5','\x9b'};
c59b是UTF-8的“ś”(0x15B)。