powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / кодировка unicode Delphi Xe
12 сообщений из 12, страница 1 из 1
кодировка unicode Delphi Xe
    #39608810
aidynchik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброго дня!
Недавно перевел проект с Дельфи 7 на Delphi Xe.
При работе с INI-файлом, заметил, что русские буквы читаются в таком виде "Добрый день! Салон красоты "Beauty"", хотя в самом файле русские буквы сидят нормально. Посмотрел кодировку файла через Notepad++ - стоит UTF-8.

Если же при чтении добавить UTF8toAnsi, то все нормально. Почему я должен конвертить в Ansi?
Разве Delphi Xe не по умолчанию unicode идет? Или я чего-то недогоняю
...
Рейтинг: 0 / 0
кодировка unicode Delphi Xe
    #39608811
aidynchik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
читаю через Ini.ReadString
...
Рейтинг: 0 / 0
кодировка unicode Delphi Xe
    #39608837
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aidynchik,

В Notepad++ смени кодировку на “UTF-8 с BOM”
...
Рейтинг: 0 / 0
кодировка unicode Delphi Xe
    #39608854
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я с ini перешёл на MEMini

1. Нужно поменять код создания объекта memini
Код: pascal
1.
2.
3.
4.
5.
   with TMemIniFile.Create(путь_к_файлу.ini) do
   begin
     b := ReadBool('СЕКЦИЯ', 'ИМЯ_ПАРАМЕТРА', False);
     free;
   end;



при сохранении нужно не забыть перед Free добавить UpdateFile;



2. Сам ini файл, если он уже есть, то его нужно пересохранить в utf8 Блокнотом

...
Рейтинг: 0 / 0
кодировка unicode Delphi Xe
    #39608950
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aidynchik, в ini-файле отсутствует маркер BOM (Bytes Order Mark), поэтому про то, что там UTF-8, Delphi не узнает никак. Добавь маркер.
...
Рейтинг: 0 / 0
кодировка unicode Delphi Xe
    #39608951
aidynchik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GunSmoker,
А как это сделать? Я не могу заставить пользователей заходить в нотпад и менять кодировку. Средствами Дельфи я могу сделать маркер, при создании файла?
...
Рейтинг: 0 / 0
кодировка unicode Delphi Xe
    #39608958
Лись
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aidynchikGunSmoker,
А как это сделать? Я не могу заставить пользователей заходить в нотпад и менять кодировку. Средствами Дельфи я могу сделать маркер, при создании файла?

В самых новых дельфях можно так:

Код: pascal
1.
2.
3.
4.
  with TMemIniFile.Create('yourfile', TEncoding.UTF8) do
  begin
    ...
  end;



Есть ли такой overload в XE хз.
...
Рейтинг: 0 / 0
кодировка unicode Delphi Xe
    #39609052
Dunkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Windows понимает ini-файлы в кодировках ANSI и UTF16LE. Для UTF8 нужно использовать TMemIni. BOM лучше прописать.
...
Рейтинг: 0 / 0
кодировка unicode Delphi Xe
    #39609213
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aidynchikЯ не могу заставить пользователей заходить в нотпад и менять кодировку.
Ну с этого бы и начинал :)

aidynchikСредствами Дельфи я могу сделать маркер, при создании файла?
При создании или чтении?
При создании - пишешь сначала нужные 3 байта. Гугли.
При чтении без BOM, используй метод, описанный Лись.
...
Рейтинг: 0 / 0
кодировка unicode Delphi Xe
    #39609308
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aidynchikЯ не могу заставить пользователей заходить в нотпад и менять кодировку

а хрен ли они вообще в ini лезут?

если лезут, значит заявили себя крутыми и умелыми, пусть тогда не нарушают законов
если "мы ничего не умеем, оно само" - пусть не лезут
...
Рейтинг: 0 / 0
кодировка unicode Delphi Xe
    #39609309
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aidynchikРазве Delphi Xe не по умолчанию unicode идет?

во-первых, не надо путать unicode и utf

во-вторых, не важно что есть в Delphi, а важно, что есть в ini
ini - это стандарт Microsoft Windows, и по стандарту там обычная ANSI CP, а никакой не юникод.

соответсвенно та часть Дельфи, которая работает с ini-файлами по умолчанию работает по стандарту.

если тебе надо отойти от стандарта и использовать нестандартную кодировку - то это надо у Дельфи явн опопросить, и то если она это умеет.
...
Рейтинг: 0 / 0
кодировка unicode Delphi Xe
    #39609477
aidynchik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
понял, всем спасибо за помощь!
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / кодировка unicode Delphi Xe
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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