Что нового

Iniread не считывает данные на русском языке

uran238

Новичок
Сообщения
15
Репутация
0
Добрый день. функция iniread не считывает данные с ini. В справке указано что "Если необходимо использовать ini в формате юникода, то предварительно создайте ini-файл с помощью FileOpen() с кодировкой "Unicode UTF16 Little Endian". Не могу понять как это реализовать, т.к. первый параметр функции Iniread принимает путь к ini файлу.

Код:
[AUTOIT]
$hIni = FileOpen("C:\Users\User.SERVERS\Desktop\Архивация\BClient.ini",128)
$read = FileRead($hIni)
      MsgBox(0,"",$read)
$a = IniRead($read,"RunAs","Program ",0)
      MsgBox(0,"",$a)
[/AUTOIT]
Со вторым параметром функции FileOpen игрался, "Unicode UTF16 Little Endian" отображает не верно. Старые сообщения листал по форумам, вроде как баг был и люди писали свои функции для чтения ini. Кто может подсказать в чем дело?
 
Последнее редактирование:

Glass4217

Осваивающий
Сообщения
277
Репутация
49
я использовал в своих скриптах
Код:
IniReadSection

а затем работал с массивом полученных данных.
 
Автор
U

uran238

Новичок
Сообщения
15
Репутация
0
я использовал в своих скриптах
Код:
IniReadSection

а затем работал с массивом полученных данных.
Этой функцией не стал пользоваться т.к. там тоже указана аналогичная сноска по поводу кодировки, потестирую. Неожиданно для себя, после эксперементов с кодировками ini файла, изменил кодировку на ANSI через Notepad++ и все стало считываться.
 

Glass4217

Осваивающий
Сообщения
277
Репутация
49
ХМ тоже себе отложу в памятку. По умолчанию пользуюсь Notepad++ возможно поэтому и не возникало проблем.
 

Norm

Осваивающий
Сообщения
200
Репутация
36
Как я понимаю, INI создает сторонняя программа, а не Autoit?

Как вариант IniVirtual.au3 или IniVirtualSPE.au3 . Там вообще никаких ограничений.
Или перезаписывать в новый INI-файл в другой кодировке, читать и удалять затем. Но я бы взял первое.
Кстати и запись в такие INI с помошью IniWrite() тоже не коректно работает.
Я помню у себя такой файл открывал в Notepad, так там по две одинаковые записи присутствовали, поскольку при записи Autoit имеющиеся записи попросту не видил.
 
Последнее редактирование:
Верх