#ruby
Как решить проблему с кодировкой при парсинге страницы #encoding: UTF-8 require 'rubygems' require 'open-uri' require 'nokogiri' require 'json' require 'active_support/all' doc = Nokogiri::HTML(open('http://ru.aliexpress.com/store/group/Phones/1986585_506350288.html?aff_platform=aaf&sk=eub6yrrBy%3A&cpt=1471512743432&af=10546_19&cv=89827&cn=2oc3mhzvpx218ax5wfqsxlopff9uebyo&dp=v5_2oc3mhzvpx218ax5wfqsxlopff9uebyo&afref=http%3A%2F%2Fvk.com%2Faway.ph&aff_trace_key=12ce769729904d2e8018a43a518cc687-1471512743432-03970-eub6yrrBy')) info = [] doc.css('.detail h3 a').map do |item| info.push( href: item['href'], title: item.inner_html ) end puts info # выводит левые символы думал трабл в консоли. пробовал гитовский шелл - там то же самое + ко всему если просто puts "четотам" то кириллицу выводит
Ответы
Ответ 1
Добрый день. Если я правильно понял проблема запуска срипта из ОС Windows. Есть один хак, который я подсмотрел у преподавателя. Нужно в начале скрипта вставить вот такой код: if (Gem.win_platform?) Encoding.default_external = Encoding.find(Encoding.locale_charmap) Encoding.default_internal = __ENCODING__ [STDIN, STDOUT].each do |io| io.set_encoding(Encoding.default_external, Encoding.default_internal) end end У себя попробовал как у Вас, такая же печаль, но с помощью данной модификации вывода STDOUT, становится все путем.
Комментариев нет:
Отправить комментарий