powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TMemIniFile и UTF8
6 сообщений из 6, страница 1 из 1
TMemIniFile и UTF8
    #39771437
vladgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток!

Возникла задача работать с Ini файлами в Unicode
Использую TMemIniFile
В результате, если файл в кодировке UTF8 (кодовая страница 65001), то не считывает ничего.
Если копаться в исходниках, то функция из модуля SysUtils
Код: sql
1.
2.
3.
4.
5.
6.
function TMBCSEncoding.GetCharCount(Bytes: PByte; ByteCount: Integer): Integer;
begin
  Result := UnicodeFromLocaleChars(FCodePage, FMBToWCharFlags,
    PAnsiChar(Bytes), ByteCount, nil, 0);
end;
 


Возвращает 0. Ну и дальше понятно, что ничего никуда не загружается.
Использую так:
Код: sql
1.
 TranslatedMemIni := TMemIniFile.Create(TranslationFile, TEncoding.UTF8);


Непосредственно в сам Ini файл с помощью Notepad++ добавил несколько специфичных символов с умляутами (всякие галочки над буквами), чтобы сразу посмотреть результат.
Но, как уже сказал, вообще ничего не считалось. Пробовал в разных вариантах. Читает только в TEncoding.ASCII, TEncoding.Default, TEncoding.UTF7. В остальных нет.
Если делаю, так
Код: sql
1.
 TranslatedMemIni := TMemIniFile.Create(TranslationFile, TEncoding.Default);


То все считывается, но специфичные символы превращаются в аброкадабру.

Вопрос: как правильно прочитать (а потом и записать) в кодировке UTF8.

P.S.
Delphi XE
Win 7 x64
...
Рейтинг: 0 / 0
TMemIniFile и UTF8
    #39771524
Фотография krapotkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JSON не предлагать?
...
Рейтинг: 0 / 0
TMemIniFile и UTF8
    #39772095
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
УМВР

test.ini
Код: sql
1.
2.
[test]
éĀăā=Ґẁẅ



Код: pascal
1.
2.
  TranslatedMemIni := TMemIniFile.Create('d:\test.ini', TEncoding.UTF8);
  TranslatedMemIni.GetStrings(Memo1.Lines);



Все отображает
...
Рейтинг: 0 / 0
TMemIniFile и UTF8
    #39772096
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блинский движок
...
Рейтинг: 0 / 0
TMemIniFile и UTF8
    #39772203
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vladgulВопрос: как правильно прочитать (а потом и записать) в кодировке UTF8.
...
Delphi XE
Использовать, например, 10.3. Там это работает.
...
Рейтинг: 0 / 0
TMemIniFile и UTF8
    #39772226
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry ArefievvladgulВопрос: как правильно прочитать (а потом и записать) в кодировке UTF8.
...
Delphi XE
Использовать, например, 10.3. Там это работает.+1
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TMemIniFile и UTF8
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]