Что нового

[Ошибки] Проблемы с кодировкой на windows xp

Byrnane

Новичок
Сообщения
5
Репутация
0
Всем здравствуйте.
Написал скрипт для автоматического заполнения формы в программе данными из csv-файла. Проект писал на семерке, csv-шка хранится в кодировке UTF-8 без BOM, в скрипте файл открывается с соответствующим флагом 256. Все работало прекрасно, пока не понадобилось запустить скрипт на машине с ХРюней... В общем теперь вместо текста - те самые кракозябры, а точнее "?"... :scratch:
Помогите, пожалуйста, в поиске проблемы... :stars:


Добавлено:
Сообщение автоматически объединено:

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


Добавлено:
Сообщение автоматически объединено:

Неужели никто с таким не сталкивался, или не имеет хотя бы гипотетического представления о решении этой проблемы???
 

InnI

AutoIT Гуру
Сообщения
4,635
Репутация
1,311
Byrnane [?]
гипотетического представления о решении этой проблемы
Вам пообщаться или проблему решить?

Если проблему, то нужны пример файла и пример кода, на которых эту проблему можно увидеть.
 
Автор
Byrnane

Byrnane

Новичок
Сообщения
5
Репутация
0
Пример файла - обычный текстовый файл в формате csv, кодировка - utf-8 без bom, две колонки, разделитель ";".
Пример пустой анкеты:
Код:
Персональные данные
Фамилия;Фамилия
Имя;Имя
Отчество;Отчество
Дата рождения;  .  .    
Образование;Образование
Место рождения;Место рождения
Пол;
Паспортные данные
Серия;
Номер;
Код подразделения;   -

Открываем файл, читаем нужную строку, обрезаем все лишнее и с оставшимся куском идем далее...
Код:
$data = FileOpen("C:\Broker\firefox\Data\profile\iMacros\Datasources\form.csv", 256) ;открываем файл
$str = FileReadLine ($data, 2) ;читаем строку с фамилией в данном примере
$aData = StringSplit ($str, $del) ;разбиваем на подстроки
Send ($aData[2]) ;и отправляем значение целевой программе


Вот, собственно, и все. Код скомпилирован в exe-шник и прекрасно работает в 7ке. В ХР вместо текста - вопросительные знаки (английский текст заполняется нормально)
 

InnI

AutoIT Гуру
Сообщения
4,635
Репутация
1,311
Byrnane
Сделал всё, как вы сказали. У меня никаких проблем при вставке в блокнот на ХР нет.

Раскладка клавиатуры по умолчанию на ХР и 7 одинаковая? Если по умолчанию русская - сделайте английскую и проверьте.
 
Автор
Byrnane

Byrnane

Новичок
Сообщения
5
Репутация
0
Вот я тупой.... И вроде в программировании не первый год, но такого подвоха я не ожидал... :sweating:
Спасибо большое, действительно, дело было в этом, помогло :rofl:


Добавлено:
Сообщение автоматически объединено:

Право говорят, дьявол скрывается в мелочах...
 

InnI

AutoIT Гуру
Сообщения
4,635
Репутация
1,311
Byrnane, попробуйте заменить Send() на
Код:
ControlSend()
; или
ControlSetText()
или так http://autoit-script.ru/index.php?topic=314.0
 
Автор
Byrnane

Byrnane

Новичок
Сообщения
5
Репутация
0
Это не подходит ввиду специфики целевой программы... Ведь вся программа состоит из менюшки и цельного компонента InternetExplorerServer :D Так что перемещаюсь по полям табами и т.п.
 

AZJIO

Меценат
Меценат
Сообщения
2,765
Репутация
1,154
в справке:
Несколько частей AutoIt по прежнему не имеют полной поддержки Юникода. Это:

Send и ControlSend - Вместо этого, используйте функции ControlSetText или Clipboard.
Консольный вывод преобразуется в ANSI.
Эти ограничения будут пересматриваться в следующих версиях, по возможности.
 
Верх