Страницы

Поиск по вопросам

воскресенье, 8 марта 2020 г.

кодировка кириллицы ruby

#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, становится все путем.

Комментариев нет:

Отправить комментарий