Что нового

Как решить проблемы с кодировкой при посылке текста в Edit?

Tapok

Новичок
Сообщения
204
Репутация
0
Какой функцией лучше посылать сообщение (в Edit или другое окно), содержащее кириллицу, лат. буквы и символы типа ":", кавычки, скобки и пр.
Код:
_GUICtrlEdit_SetText(ControlGetHandle($hWindow, "", "Edit2"), $mass[2][1])

выдает в Edit кириллицу даже с запятыми, но без двоеточия, при копировании этого текста в notepad получаем "óñòðîéñòâî, ðàáîòà è îñíîâû ýêñïëóàòàöèè".

$mass[2][1] берется из текстового файла, игры с кодировками этого файла не принесли радости.

Как решать такие вопросы?
 
Автор
T

Tapok

Новичок
Сообщения
204
Репутация
0
тем не менее, не видит кавычек " и двоеточия, (скобки, запятую) видит...
Файл в кодировке Windows-1251, если в UTF, то вообще не передает
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Tapok
не видит кавычек " и двоеточия
Кто не видит? Буфер обмена? Или Edit2?
Посмотрите, что у вас находится в элементе массива
Код:
ConsoleWrite($mass[2][1] & @CRLF)
и сравните с тем, что появится в Edit2.
 
Автор
T

Tapok

Новичок
Сообщения
204
Репутация
0
Консоль увидела все, что я хотел:
Код:
 !,"():.-
Edit не увидел кавычек и двоеточия :( как быть?
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Tapok
Попробуйте
Код:
ControlSetText("Конструктор тестов", "", "Edit2", $mass[2][1])
Также попробуйте переключить раскладку клавиатуры в окне с Edit2 перед вставкой текста на русскую (или наоборот - на английскую).
И проверьте не нажаты ли у вас Shift и CapsLock.
 
Автор
T

Tapok

Новичок
Сообщения
204
Репутация
0
в Edit постоянно одно и то же, без кавычек и двоеточий, в консоли все хорошо. От раскладки рус,англ в различных комбинациях ничего не поменялось. Caps и Shift не нажаты. :(
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
А так при разных раскладках что будет?
Код:
ControlSend("Конструктор тестов", "", "Edit2", $mass[2][1], 1)
 
Автор
T

Tapok

Новичок
Сообщения
204
Репутация
0
все равно, нет кавычек и двоеточий в режиме рус-рус, рус-eng,
вместо двоеточия - Ж, вместо кавычки - Э.
В режиме eng-eng и eng-рус вообще нет русских букв. (первое-Edit, второе-скрипт)

Код:
Opt("MouseCoordMode", 2)
WinActivate("Текстовый редактор")
MouseClick("left",20,50,1)
 Send("@Приве(т) - !@ #:",1)


работает, вместо собаки будут кавычки...только как быть, если я текст получаю? Предварительно менять в строке кавычки на собаку? :smile:
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Tapok
вместо двоеточия - Ж, вместо кавычки - Э
Можно попробовать перед отправкой заменять кавычки и двоеточия на их ASC-коды.

Ещё попробуйте буфер обмена. Просто вручную скопируйте нужную строку в буфер обмена и также вручную вставьте в Edit2. При наличии проблем попробуйте разные сочетания раскладок.
 
Автор
T

Tapok

Новичок
Сообщения
204
Репутация
0
Если из консоли взять текст в хорошем виде, то несмотря на любые сочетания раскладок, в Edit корректно не вставляется.
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Автор
T

Tapok

Новичок
Сообщения
204
Репутация
0
Хорошо! Всем спасибо!
А это действительно такая большая проблема с кириллицей, что, несмотря на то, что она постоянно всплывает, разработчиками не решена? Или западным разработчикам до кириллицы мало дела? :scratch:
(вопрос риторический)
Тема закрыта :smile:
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Tapok
разработчиками не решена
Решена и уже давно. Просто у вас программа на какой-то очень старой версии языка написана, где проблемы ещё были.

западным разработчикам до кириллицы мало дела
Ну-у... не без этого :smile:
 
Верх