Преобразование кодовой страницы |
Вверх Предыдущий Следующий |
Так как строки имеют информацию о кодовой странице, связанную с ними, важно знать, в какой кодовой странице используется данная строка: 1.Короткие строки (ShortString) всегда используют системную кодовую страницу (по умолчанию). 2.AnsiStrings использует системную кодовую страницу (по умолчанию). 3.Одиночные байтовые строки объявляются с текущей кодовой страницей. 4.Тип RawByteString не имеет информации о кодовой странице, связанной с ним. Компилятор преобразует кодовую страницу нужным образом: При присвоении строки, кодовая страница исходной строки всегда будет преобразовываться в кодовую страницу результирующей строки. Это означает, что в следующем коде: Type TString1 = Type String(1252); TString2 = Type String(1251); Var A : TString1; B : TString2; begin A:='123'+'345'+intToStr(123); B:=A; Writeln('B : ',StringRefCount(B)); Writeln('A : ',StringRefCount(A)); end. Компилятор преобразует содержимое строки B в соответствии с кодовой страницей строки A. Обратите внимание, что если происходит преобразование кодовой страницы, то не используется механизм счетчика ссылок: для новой строки будет выделена память. Автоматизированное преобразование кодовых страниц может серьезно замедлить код, поэтому необходимо соблюдать осторожность, чтобы преобразования кодовых страниц было сведено к минимуму. Кодовую страницу строки можно задать явно с помощью процедуру SetCodePage модуля System. Вызов этой процедуры будет преобразовывать значение строки к запрашиваемой кодовой страницы.
|