Урок 10: Проблема с кодировками в Windows 10 (Windows-1251 to UTF-8 to IBM866)

[А] Алексей Щёголев, 21 июля 2016, 19:51 , 3 подписчика

Ваша программа выдает ошибку при запуске. Вроде все поторил за вами ,но программа не запустилась. Скачал вашу, запустил и...

enter image description here

при этом, как вы понимаете, с английскими словами все ок...

система у меня Windows 10

Обсуждение (7)


Вадим Венедиктов Учитель

[В]

Напишите, пожалуйста, что вам говорит команда chcp


Алексей Щёголев

[А]

текущая кодовая страница: 866


Алексей Щёголев

[А]

Это уже, правда к 13 уроку относится, но тема подходящая...

Короче,читаю файл, распихиваю его по строкам. Вывожу строку через puts и вижу: enter image description here


Алексей Щёголев

[А]

опытным путем установлено...

f.read -- нормально читает файл f.readlines -- грзит символы в формате \uNNNN

Встает вопрос... как это все сгрузить в строку, так, чтобы все не поломалось ? .


Алексей Щёголев

[А]

нда... надо все таки в отдельный вопрос было выносить всё...


Вадим Венедиктов Учитель

[В]

Угу, Алексей, задайте отдельный вопрос. Хоть это тоже проблема с кодировками. И приложите исходник именно вашей программы обязательно.


[Д]

Алексей, я сталкивался с подобной проблемой. После того как я поменял

encode("IBM866", "cp1251")

на

encode("cp1251")

и дал руби догадаться какая кодировка нужна, всё заработало.

if (Gem.win_platform? && ARGV[0]) slovo = slovo.dup.force_encoding("IBM866").encode("cp1251").encode("UTF-8") end

Попробуйте, вдруг поможет.