Макрос кодирования C ++ - PullRequest
       6

Макрос кодирования C ++

2 голосов
/ 24 января 2010

Есть ли макрос, который сообщает вам, какую кодировку C ++ использует для своего типа wchar_t? В настоящее время я застрял в GNU и лязг. Я предполагаю UTF32, потому что мой wchar_t имеет размер 4 байта. Хотя это может быть UTF-16, он также использует 4 байта для некоторых кодовых точек.

Но тогда остается проблема UCS-4 или UTF-32LE или UTF-32BE.

Любая помощь / экспертиза по этой теме?

Ответы [ 2 ]

2 голосов
/ 24 января 2010

wchar_t зависит от реализации. Это не связано какой-либо конкретной кодировки. Если вы находитесь на платформе, где wchar_t равен 16 битам, то он, например, просто не поддерживает UTF32.

Кодирование (UTF8, UTF32) и хранение (wchar_t) - это разные вещи.

0 голосов
/ 24 января 2010

В C ++ такого макроса нет. В C99 есть макрос STDC_ISO_10646 , чтобы указать, что wchar_t является Unicode. В C ++ кодирование символов, хранящихся в wchar_t, зависит от локали и является функцией, определяемой реализацией. Другими словами, вам нужно обратиться к документации используемой реализации C ++, чтобы увидеть, что wchar_t связано с каждой локалью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...