Lazarus и русская кодировка

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

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

Ответить
fre012
незнакомец
Сообщения: 1
Зарегистрирован: 10.07.2018 11:10:29

Lazarus и русская кодировка

Сообщение fre012 »

Здравствуйте.
Пару лет над\зад делал небольшую прогу, все работало.
Она читает эксель-файл и пишет в текстовый файл кирилицу.
Работал через функции SysToUTF8 UTF8ToSys
все работало, сейчас надо внести неб. изменения в проект и теперь установил новый лазарус 1,8,4
И теперь при компиляции вместо русских букв абракадабра.
Попробовал удалить везде эти вызовы: SysToUTF8 UTF8ToSys - не помогло.

Что не так?
Что надо адаптировать, какие функции или настройки применить?
Dakor
новенький
Сообщения: 16
Зарегистрирован: 14.04.2018 23:01:01

Сообщение Dakor »

А Вы используете FileUtil.UTF8ToSys или LazUTF8.UTF8ToSys? Сейчас нет лазаруса под рукой - посмотрите функции модуля LazUTF8
SSerge
энтузиаст
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Сообщение SSerge »

fre012 писал(а):Что не так?


1. Исполняющая система (RTL) теперь в UTF8, а не в дефолтовой кодировке ОС, как было раньше.
2. На строках появился идентификатор кодовой страницы, и присвоения между разными переменными делаются с его учетом, что иногда вызывает плохо понимаемую перекодировку.

Добавлено спустя 5 минут 34 секунды:
а, да. UTFtoSYS работают по преобразованию кодировки строки в кодировку RTL по умолчанию. Читай: в лазарусе, при подобных настройках RTL - не делают ничего.

...либо применяйте явное преобразование utf8tocp1251, либо разбирайтесь, как работает внутренняя конверсия строк, без использования lazutf8
Аватара пользователя
Снег Север
долгожитель
Сообщения: 3071
Зарегистрирован: 27.11.2007 15:14:47
Контактная информация:

Сообщение Снег Север »

Убрать в программе все перекодировки, а файл экселя писать в UTF8 - это умеют все эксели, кроме самых древних.
Ответить