Тип String

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Angel_19
новенький
Сообщения: 37
Зарегистрирован: 24.06.2014 17:29:47

Тип String

Сообщение Angel_19 »

Доброго!

С типом String что-то непонятное... Как дело доходит до строк с русскими символами.
ini файл в кодировке 1251, читаю его, текст вывожу в memo, взамен русских символов - знаки вопроса.

Т.е. визуальные элементы в юникоде а остальное нет? Или как?
SSerge
энтузиаст
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Сообщение SSerge »

Angel_19 писал(а):а остальное нет? Или как?


Лазарусом не поддерживаются (и идеологически запрещены) маркированные кодовой страницей строки. поскольку String=AnsiString на текущую реализацию, в ее содержимом содержится именно тот мусор, что вы в нее поместили. Т.е. прочитали файл в cp1251 - будет байтовое представление cp1251, прочитали файл в koi-8 - будет байтовое представление koi-8. Попытки включить поддержку маркеров кодовой страницы в RTL freepascal приведут к неадекватному поведению библиотек лазаруса. То есть - автоматического преобразования кодировок - НЕТ.

Функции для ручной перекодировки содержимого строк представлены в unit's lconvencoding, lazutf8, для работы с именами файлов - fileutil.pas

Ссылка на старую Прикладную Кадаврологию: http://sirserge.altai.info/articles/?id=41
Там написано гнусно, но в целом правильно
Angel_19
новенький
Сообщения: 37
Зарегистрирован: 24.06.2014 17:29:47

Сообщение Angel_19 »

Спасибо! То что нужно!
Ответить