В чем разница между glib gunichar и wchar_t и что лучше для кроссплатформенных решений?

Я пытаюсь написать код на C, который является переносимым только для пользователя. gcc, и имеет glib установлены.

Из всех моих исследований я обнаружил, что с gcc, wchar_t всегда определяется как 4 байта, и с glib gunichar также 4 байта.

То, что я не понял, если как gunichar, wchar_t также кодируется как UCS4. Это тот случай? Если это так, я должен быть в состоянии просто бросить gunichar* к wchar_t* и использовать stdc wcs* функции, верно?

1 ответ

Решение

Если вы используете GLib, не используйте wchar_t, Используйте поддержку Unicode, это намного лучше, чем поддержка стандартной библиотеки C.

wchar_t 4 байта в Linux и Mac OS (и некоторых других), а не в Windows (там 2 байта) и некоторые другие. Портативный код означает избегать wchar_t как чума.

Другие вопросы по тегам