Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

C. Тема 1. Раздел 7

.pdf
Скачиваний:
15
Добавлен:
21.03.2016
Размер:
487.97 Кб
Скачать

Часть 3

Обычные кодировки ASCII (один байт на символ) позволяют представлять только 256 символов

Всё хорошо для английского языка

Для остальных языков приходится переделывать часть символов стандартной кодировки

Для расширенной многоязыковой поддержки требуется кодировка, позволяющая хранить символы всех языков

Решение – использовать для представления символов более одного байта

Это и есть Unicode

Существуют различные разновидности Unicode с различным количеством байтов на один символ

UTF8 – от 1 до 6 байт на символ

UTF16 – от 2 до 4 байт на символ

В Unicode есть специальные «модифицирующие символы», например, символ ударения, «крышка» от Й, точки от Ё

Обычный char не годится для представления одного символа

Многие стандартные функции работы со строками не могут работать со строками Unicode

Строки невозможно сравнивать

Длина строки определяется неверно

Использовать возможности стандартной библиотеки wchar, а также расширения стандартной библиотеки string

Использовать тип данных wchar_t (широкий символ)

В WinAPI wchar_t имеет размер 16 бит

В GNU/Linux wchar_t имеет размер 32 бита

Использовать адаптированные для Unicode варианты функций работы со строками

wcscmp – вариант strcmp для wchar_t

mbscmp – вариант strcmp для многобайтовых символов

Спасибо за внимание!