С Новым годом! Форум программистов, компьютерный форум, киберфорум
Ruby
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.59/78: Рейтинг темы: голосов - 78, средняя оценка - 4.59
0 / 0 / 0
Регистрация: 04.04.2012
Сообщений: 5

Incompatible character encodings: UTF-8 and IBM866 (Encod ing::CompatibilityError)

04.04.2012, 22:26. Показов 15241. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Приступил к изучению Ruby, сразу предупреждаю я абсолютный 0.... к программированию вообще никакого отношения не имел.

Начал изучать по книге Криса Пайна "Учись программировать" и..... попал в ситуации которые не описаны в учебнике, ситуации кодировкой. С первой проблемой я справился сохранив файл в кодировке UTF-8

это решение не помогло при следующих задачах приведенных в учебнике. Вот что пишет комп:

calc.rb:3:in `<main>': incompatible character encodings: UTF-8 and IBM866 (Encod
ing::CompatibilityError)


помогите с этим справится..
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.04.2012, 22:26
Ответы с готовыми решениями:

[C++ Warning] Unit1.cpp(270): W8098 Multi-character character constant
//транслит String translit(String tb) { for(int i=1; i&lt;tb.Length()+1;i++) { if(tb=='ж') tb='zh'; else if(tb=='ё')...

[BCC32 Warning] Unit1.cpp(28): W8098 Multi-character character constant
С чем может быть связана ошибка Unit1.cpp(28): W8098 Multi-character character constant в строчке Label1-&gt;Caption='Введите...

Warning: multi-character character constant [-Wmultichar]
Есть такой участок кода (для замены ё на е), передача по ссылке не подходит, так как надо возвращать значение ( е/Е вместо ё/Ё или не...

9
5 / 5 / 0
Регистрация: 15.12.2010
Сообщений: 20
05.04.2012, 01:24
Ruby
1
#encoding: UTF-8
в начало файла

а вообще руби не самый лучший вариант для первого языка
0
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
05.04.2012, 08:16
Придерживаюсь мнения, что руби - один из самых лучших вариантов для новичка.
Но вот разработка на нем в windows часто приносит огорчения, всё таки основная экосистема разработчиков сидят либо на маках, либо на линуксе.
С виндовой консолью для запуска руби-поделок вам еще придется натерпеться. Если вы только учитесь, старайтесь писать строковые литералы либо по английски, либо транслитом - и всё будет ОК.
0
0 / 0 / 0
Регистрация: 04.04.2012
Сообщений: 5
05.04.2012, 10:21  [ТС]
Цитата Сообщение от SqREL Посмотреть сообщение
Ruby
1
#encoding: UTF-8
в начало файла

а вообще руби не самый лучший вариант для первого языка
это не помогло

Добавлено через 15 минут
странно что первая часть кода:
#encoding: UTF-8
puts 'Приветик, ну и как Вас зовут?'
name = gets
работает нормально и отображается,

а далее нет.

так же работает и
puts gets
.....

Добавлено через 4 минуты
это
puts 'Приветик, ну и как Вас зовут?'
name = 'Евгений '
puts name + 'это ваше полное имя?'
работает

это не работает
puts 'Приветик, ну и как Вас зовут?'
name = gets
puts name + 'это ваше полное имя?'
0
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
05.04.2012, 10:58
Цитата Сообщение от EugenyT Посмотреть сообщение
это работает
...
это не работает
Подозреваю, что gets возвращает строку в кодировке консоли, а она в винде - OEM (т.е. cp866), в то время как кодировка вашего исходника либо ANSI (cp1251), либо UTF-8 - в зависимости от того, что вы указали в заголовке. Вот интерпретатору и сносит голову от такого микса. В линуксе такого нет: там и консоль и всё остальное использует utf8.
Хорошей ссылкой по сабжу и его решению вас не снабжу, но гуглить примерно надо такое "ruby windows 866 1251"
0
0 / 0 / 0
Регистрация: 04.04.2012
Сообщений: 5
05.04.2012, 13:43  [ТС]
спс за направление, но ответа так и не нашел...
0
5 / 5 / 0
Регистрация: 15.12.2010
Сообщений: 20
05.04.2012, 17:25
Это только мое имхо, но начинать программную жизнь с ОО языка не есть хорошо. В руби много "магии" для новичка, а если уйти в рор то может сложится впечатление, что это делал Гендальф. Начинать стоит с pure C, пройти через С++, потом желательно через фп язык (lisp или haskel) и уж тогда на руби. Но это только идеал, писающий радугой и отрыгивающий бабочками.

ТС, я даже не подумал что у вас шиндовс. Если таки хотите разрабатывать на руби - ставьте линукс (или покупайте мак )
0
05.04.2012, 18:15  [ТС]

Не по теме:

вспомнился анекдот:
Приехал сын на деревню из армии. Утром собрались они с отцом за дровами. Идут значит с утра и отец решил сына расспросить об том как служба сейчас в современных войсках.
(О) - Ну ка сын, расскажи как там щас!
(С) - Хорошо отец щас на примере покажу. Вот мы идем за дровами - это "задача". А условия заданные командиром это "вводные". Так вот, (приближаясь они в речке которую надо по моту перейти), вводная - моста нет.
(О) - как нет?! Вот же он сына!...
(С) - Я сказал что это вводная!!! Что моста нет!!! Это приказ и он не обсуждается.
(О) - Ладно сына, я понял. И что делать?!
(С) - что, что - задачу выполнять!!!
(О) - ну тогда в брод на телеге переберемся...

Нарубили они дров и только давай грузить на телегу,
(С) - новая вводная - телеги нет. Противник уничтожил транспорт авиа ударом.
(О) - как нет! Так вот же она..... :(
(С) - я сказал же что это вводная...
__________________________________
В общем сам анекдот не важен как то что:
(ТС) - Задача, изучить Ruby. Вводные - есть инет и нетбук с Windows7 :) Денег на Мак нет, Люнекс для пренесет другие трудности, т.к. я его не знаю.

0
 Аватар для arni
914 / 879 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
05.04.2012, 20:46
EugenyT, вот вам пример, как с небольшими неудобствами работать с кирилическими литералами в windows (уверен, что найдутся лучшие способы, но для начала сгодится):

0) Устанавливаем FAR, если еще нет. Запускаем.
1) SHIFT+F4 - создание нового файла. Назовем test.rb
2) Если вверху окна редактора высветилось 1251, жмем F8, чтобы сменить на 866.
3) Набираем текст программы:
Ruby
1
2
3
4
#coding: cp866
puts 'Приветик, ну и как Вас зовут?'
name = gets
puts name + 'это ваше полное имя?'
4) Сохраняемся, и набираем в консоли
Code
1
ruby test.rb
5) Получаем результат (у меня работает на ruby 1.9.1):
Code
1
2
3
4
5
T:\>ruby test.rb
Приветик, ну и как Вас зовут?
Царь!
Царь!
это ваше полное имя?
1
0 / 0 / 0
Регистрация: 04.04.2012
Сообщений: 5
06.04.2012, 12:15  [ТС]
arni, вооо спасибо огромное, заработало!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.04.2012, 12:15
Помогаю со студенческими работами здесь

Error: Unresolved external 'character::character(int)'
Error: Unresolved external 'character::character(int)' referenced from C:\USERS\АДМИНИСТРАТОР\DOCUMENTS\RAD...

Операторы if и char - Multi-character character constant
Здравствуйте я мало нашёл информации о работе if с char, вот мой код: #include &lt;iostream&gt; using namespace std; int main() ...

getBytes('UTF-16') даёт UTF-16LE или UTF-16BE?
Добрый день! Делаю J2ME-клиента к некому серверу, исходников которого у меня нет, но есть работающий клиент на C#. Выяснилось, что C#...

[Warning] multi-character character constant
#include &lt;iostream&gt; using namespace std; class toolBooth { private: unsigned int car; double money; public: ...

ошибка Multi-character character constant
создаю базу данных. хочу задать onst MainSQL ='select days.name as day_, maintable.number as number, teache.pip as teach,'+ ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru