일부 텍스트를 표시하는 Raspberry Pi 용 OpenVG 응용 프로그램을 만들고 있는데 외국 문자 (이 경우 폴란드어)에 대한 지원이 필요합니다. 좀 더 높은 수준의 언어에서 C에서 리터럴에 유니 코드 문자를 매핑하는 기능을 준비 할 계획하지만 지금 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 자리 코드 이상인 유니 코드 문자는 인쇄 할 수 없습니다.
데이터 유형이 원인으로 사용됩니까? 나는 char16_t와 char32_t를 사용하는 것을 고려했다. 그러나 헤더 파일은 아무 것도 시스템에서 찾을 수 없다.
지금까지 모든 문자 - 문자열이 올바르게 인쇄 되었다면 그렇게 생각하기 때문에 UTF16/32로 전환 할 수 없습니다. 어쩌면 UTF8에서 작동 할 수 있지만 잘못된 값 (및 잘못된 할당 코드)이있을 수 있습니다. – deviantfan
일반 문자와 거의 관련이있을 수 있으므로 거의 모든 플랫폼에서 단일 바이트가되므로 문자 ''\ x15b '' 문자열에 표현할 수 없습니다. –
''\ u015b "'는 원하는 결과를 제공합니까? – Wintermute