UTF8String |
Вверх Предыдущий Следующий |
Однобайтовые строки могут хранить только набор символов, доступных в этой кодовой страницы. Символы, которые нет в кодовой странице, не могут быть в этой строке. Unicode кодировка UTF-8 является кодировкой, которая может быть использована с однобайтными строками: Таблица ASCII-символов (128 разрядная таблица) в этой кодировке строго CP_ACP. Этот факт используется для пере определения одного байта строки, содержащей все символы: Type UTF8String = type AnsiString(CP_UTF8); Строка типа UTF8String может использоваться для представления всех символов Unicode. Это возможно! Так как для символа юникода (unicode) может потребоваться несколько байтов, которые будут представлены в кодировке UTF-8, однако есть два замечания, которые надо учитывать при использовании UTF8String: 1.Осторожно нужно пользоваться индексом символа - т.к размер символа (в общем случае) неравен 1 байт, то индекс символа и номер байта - не одно и то-же: то есть выражение S[i] не всегда указывает на допустимым символом в строке S (типа UTF8String). 2.Количество байт в строке не равно числу символов в строке. Стандартная функция length не может быть использована для получения длины символа, она всегда будет возвращать длину 1 байт. Для всех (остальных) кодовых страниц, количество однобайтных символов в строке равна длине байт строки. |