Как заставить Windows 7 поддерживать кодовую страницу 12000 (UTF-32) или кодовую страницу 1200 (UTF-16)?

Есть ли способ заставить Windows 7 поддерживать кодовую страницу 12000 (UTF-32) или кодовую страницу 1200 (UTF-16)?

-1

Решение

Нет. Эти кодовые страницы не могут быть установлены в качестве текущей кодовой страницы MBCS. (То есть кодовая страница, используемая API «ANSI», такая как функции Windows, названные терминалом A, такие как CreateWindowAили кодовая страница, используемая языковым стандартом C в среде выполнения C или C ++).

  • UTF-32 не поддерживается, поскольку поддержка кодовой страницы Windows MBCS допускает только символы, которые занимают один или два байта.

  • UTF-16 не может поддерживаться по той же причине — символам за пределами BMP требуется четыре байта для представления.

  • Кроме того, UTF-8 не поддерживается, потому что для некоторых символов снова требуется четыре байта.

Вы можете использовать UTF-16 (разновидность Little-endian) изначально, используя UNICODE API (то есть варианты W, например. CreateWindowWи функции библиотеки широких символов C и C ++). Кроме того, вы можете использовать MultiByteToWideChar а также WideCharToMultiByte конвертировать между UTF-32, UTF-8, UTF-16BE и UTF-16LE.

Если вы пишете программу только для Windows, вы должны использовать только UNICODE API. Если вы пишете программу для среды выполнения C, которую хотите сделать переносимой, вы можете создать версию UNICODE для Windows и версию UTF-8 для Unix / Linux.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector