Я использую Watir, чтобы заполнить текстовое поле html-кодом, который я ранее просмотрел в другой программе.
Язык содержимого сайта, который я передаю, - немецкий, поэтому в нем задействованы специальные символы, которых нет в английском алфавите.
Эти символы правильно отображаются в html-файле, но при переносе в текстовое поле установки Joomla (я перевожу веб-сайт в Joomla с помощью этой программы), специальные символы отображаются неправильно.
В результате большой помощи пользователям я смог решить предыдущую проблему и теперь переношу контент следующим способом:
browser.text_field(:id => "text").value=(open('my-site.html') { |f| f.read })
В результате специальные символы были показаны следующим образом:
über => ³ber
vergißt => vergi▀t
wählen => wõhlen
geförderter => gef÷rderter
Пользователь догадался, что это как-то связано с кодовой страницей, с которой я работаю, и проблемами с кодировкой. Запуск DOS: chcp привел к выходу 850.
Его попытка решить проблему была следующей:
require 'iconv'
browser.text_field(:id => "text").value=(
Iconv.iconv('CP850', 'ISO-8859-1', open('my-site.html') { |f| f.read })
)
К сожалению, это не решило проблему, и специальные символы теперь отображаются, например, как:
\ x81ber = über
vergi \ xE1t = vergißt
и новые строки отображаются как \ n
Я очистил страницы с помощью Механизации, используя следующий код:
auszug=page.search ('/html/body/table/tr/td/table/tr[2]/td/table/tr/td[4]')
outputFile<<auszug
Надеюсь, вы мне чем-нибудь поможете, так как я просто волонтер, работающий здесь с небольшим опытом программирования. Если я не запустил эту программу на следующей неделе (это единственное, что действительно меня останавливает), то мне придется вручную перенести сотню страниц, используя copy + paste: /
Спасибо, что нашли время и все усилия, которые вы вкладываете в это! : -)
Себастьян