Что нового

[Данные, строки] Кодировка при заполнении и чтении формы в FF русскими буквами

Dedullika

Новичок
Сообщения
22
Репутация
0
Добрый день!

Использую FF.au3, нужно записать в форму (поле ввода) ни сайте русский текст. Английский записывается без проблем. Испльзую такую конструкцию
Код:
$textENG = "in russian we trust"
$text= "андреевский флаг"
_FFConnect(Default, Default, 3000)
_FFObj(_FFObjGet("id-0.3020452943164855", "id"), "value", $text)


Текстом из $textENG форма заполняется верно, а текстом из $text форма заполняется чем-то типа ����������� ����.
Подскажи пожалуйста как быть, в кодировках не силен, из encoding.au3 попробовал все функции в лоб подставлять перед строкой, не помогло
 
Автор
D

Dedullika

Новичок
Сообщения
22
Репутация
0
Re: [Данные, строки] Кодировка при заполнении формы в FF русскими буквами

Решил проблему при вставке русских букв в форму - перед строкой добавил __FFValue2JavaScript.
Однако при любом чтении (_FFReadHTML) получить русские буквы пока не удалось...
Читается
45@68<>5 MB>3> A09B0 ;8F5=78@>20=> =0 CA;>28OE
вместо
лицензией, содержимое этого сайта лицензировано на условиях
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333

Dedullika,
так у тебя получилось?
Покажи хоть какой-нибудь работающий скрипт, который использует функции этой библиотеки.
 
Автор
D

Dedullika

Новичок
Сообщения
22
Репутация
0
Код:
#Include <FF.au3>

;_FFStart("www.google.com")
_FFConnect(Default, Default, 3000)
_FFOpenURL("www.google.com")
_FFObj(_FFObjGet("q", "name"), "value", __FFValue2JavaScript("день рождения сталина"))


Такой скрипт вставляет кирилицу в поле поиска гугла. Теперь осталось как-то поправить то, что выдает библиотека FF.au3 при чтении исходного кода страницы. Чтобы потом парсить. Если конвертировать, то онлайн конвертеры говорят требуется сделать 7-bit ASCII → ISO-8859-5

UPD На всякий случай уточню, что скрипт сверху подразумевает что Firefox запущен и аддон Mozrepl тоже.
 
Автор
D

Dedullika

Новичок
Сообщения
22
Репутация
0
Хм для парсинга русских букв из Исходного Кода написал функцию преобразования. Криво конечно, костыль, но хоть что-то

Код:
Func ASCIIdecode($ASCIIstring)
Local   $Proper_String = '', $ASCII_code, $Proper_Code
For $i=1 To StringLen($ASCIIstring)
$ASCII_code = Asc(StringMid($ASCIIstring, $i, 1))
If $ASCII_code > 15 AND $ASCII_code < 80 AND $ASCII_code <> 32 Then
$Proper_Code = $ASCII_code+176
$Proper_String &= Chr($Proper_Code)
Elseif $ASCII_code = 32 Then
$Proper_Code = $ASCII_code
$Proper_String &= Chr($Proper_Code)
Else
$Proper_String &= StringMid($ASCIIstring, $i, 1)
EndIf
Next
Return $Proper_String
EndFunc


Если кто предложит более грамотный вариант как избавиться от 7-bit ASCII буду только рад = )

UPD Может каким-нибудь хитрым способом, выполнить Javascript на странице, да так чтобы все русские буквы стали какой-нибудь кодировкой, которую MOZREPL передаст нам без изменений, и которая имеется в Encoding UDF, чтобы легко расшифровать
 
Верх