Здравствуйте.
Пару лет над\зад делал небольшую прогу, все работало.
Она читает эксель-файл и пишет в текстовый файл кирилицу.
Работал через функции SysToUTF8 UTF8ToSys
все работало, сейчас надо внести неб. изменения в проект и теперь установил новый лазарус 1,8,4
И теперь при компиляции вместо русских букв абракадабра.
Попробовал удалить везде эти вызовы: SysToUTF8 UTF8ToSys - не помогло.
Что не так?
Что надо адаптировать, какие функции или настройки применить?
Lazarus и русская кодировка
Модератор: Модераторы
А Вы используете FileUtil.UTF8ToSys или LazUTF8.UTF8ToSys? Сейчас нет лазаруса под рукой - посмотрите функции модуля LazUTF8
fre012 писал(а):Что не так?
1. Исполняющая система (RTL) теперь в UTF8, а не в дефолтовой кодировке ОС, как было раньше.
2. На строках появился идентификатор кодовой страницы, и присвоения между разными переменными делаются с его учетом, что иногда вызывает плохо понимаемую перекодировку.
Добавлено спустя 5 минут 34 секунды:
а, да. UTFtoSYS работают по преобразованию кодировки строки в кодировку RTL по умолчанию. Читай: в лазарусе, при подобных настройках RTL - не делают ничего.
...либо применяйте явное преобразование utf8tocp1251, либо разбирайтесь, как работает внутренняя конверсия строк, без использования lazutf8
- Снег Север
- долгожитель
- Сообщения: 3071
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
Убрать в программе все перекодировки, а файл экселя писать в UTF8 - это умеют все эксели, кроме самых древних.
