Неправильная кодировка при чтении из inifiles

vlv74
Дата: 09.01.2020 13:52:39
Доброго всем времени суток
у меня такая проблема.
для настроек работы программы я использую inifiles
пример:
[Connect]
Server=APP56
Base=Mira56
Prefiks=БАЗА1

при чтении английские символы читаются нормально, а вот с русскими проблема
Conn.Server:=ini.ReadString('Connect','Server','');
Conn.Base:=ini.ReadString('Connect','Base','');
Conn.Prefiks:=ini.ReadString('Connect','Prefiks','');

результат
Картинка с другого сайта.

я так понял что это разные кодировки, но как поменять не знаю
x1ca4064
Дата: 09.01.2020 13:58:51
vlv74

я так понял что это разные кодировки, но как поменять не знаю


Скорее всего, Вы инифайл сохраняете в кодировке utf8, а читаете в ANSI.
самый простой способ - сохраните инифайл в кодировке Win1251
vlv74
Дата: 09.01.2020 14:11:04
файл создаться в этой же программе
  ini:= TIniFile.Create(sfile);
  ini.WriteString('Connect','Server',Conn.Server);
  ini.WriteString('Connect','Base',Conn.Base);
  ini.WriteString('Connect','Prefiks',Conn.Prefiks);
  ini.Free;

при открытии в блокноте всё корректно
а вот при чтении его же, вылезают крокозябы

файл создаётся в формате UTF-8 (Если верить блокноту)
соответственно вопрос меняется
как изменить формат с UTF-8 на String?
wadman
Дата: 09.01.2020 14:41:16
vlv74
пример:
[Connect]
Server=APP56
Base=Mira56
Prefiks=БАЗА1

"Пример" создан блокнотом (руками) или самим приложением?
vlv74
Дата: 09.01.2020 14:42:48
само приложение создаёт
а прочитать не может
wadman
Дата: 09.01.2020 14:54:22
vlv74
TIniFile.Create(sfile);

Здесь можно указать кодировку?
vlv74
Дата: 09.01.2020 14:56:30
если бы я знал, то не спрашивал бы как поменять формат
wadman
Дата: 09.01.2020 15:10:38
vlv74
если бы я знал, то не спрашивал бы как поменять формат

Можно.
vlv74
Дата: 09.01.2020 15:16:59
как?????
если можно с примером
Квейд
Дата: 09.01.2020 15:19:42
vlv74
Доброго всем времени суток
у меня такая проблема.
для настроек работы программы я использую inifiles
пример:
[Connect]
Server=APP56
Base=Mira56
Prefiks=БАЗА1

при чтении английские символы читаются нормально, а вот с русскими проблема
Conn.Server:=ini.ReadString('Connect','Server','');
Conn.Base:=ini.ReadString('Connect','Base','');
Conn.Prefiks:=ini.ReadString('Connect','Prefiks','');

результат
Картинка с другого сайта.

я так понял что это разные кодировки, но как поменять не знаю

TMemIniFile