テキストを表示する Raspberry Pi 用の OpenVG アプリケーションを作成しており、外国語の文字 (この場合はポーランド語) のサポートが必要です。高水準言語でユニコード文字を 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 桁の 16 進数コードがあります。"ś" (0x15B) を印刷しようとすると、文字 "[" (0x5B) が代わりに印刷されます。2桁を超えるコードを持つUnicode文字を印刷できないことがわかりました。
使用されているデータ型が原因ですか? char16_t と char32_t の使用を検討しましたが、ヘッダー ファイルがシステムのどこにもありません。