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

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

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

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

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

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

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


помогите с этим справится..
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
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=='ж')...

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

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

Error: Unresolved external 'character::character(int)'
Error: Unresolved external 'character::character(int)' referenced from...

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

а вообще руби не самый лучший вариант для первого языка
0
912 / 877 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
05.04.2012, 08:16 3
Придерживаюсь мнения, что руби - один из самых лучших вариантов для новичка.
Но вот разработка на нем в windows часто приносит огорчения, всё таки основная экосистема разработчиков сидят либо на маках, либо на линуксе.
С виндовой консолью для запуска руби-поделок вам еще придется натерпеться. Если вы только учитесь, старайтесь писать строковые литералы либо по английски, либо транслитом - и всё будет ОК.
0
0 / 0 / 0
Регистрация: 04.04.2012
Сообщений: 5
05.04.2012, 10:21  [ТС] 4
Цитата Сообщение от 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
912 / 877 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
05.04.2012, 10:58 5
Цитата Сообщение от 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  [ТС] 6
спс за направление, но ответа так и не нашел...
0
5 / 5 / 0
Регистрация: 15.12.2010
Сообщений: 20
05.04.2012, 17:25 7
Это только мое имхо, но начинать программную жизнь с ОО языка не есть хорошо. В руби много "магии" для новичка, а если уйти в рор то может сложится впечатление, что это делал Гендальф. Начинать стоит с pure C, пройти через С++, потом желательно через фп язык (lisp или haskel) и уж тогда на руби. Но это только идеал, писающий радугой и отрыгивающий бабочками.

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

Не по теме:

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

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

0
912 / 877 / 62
Регистрация: 06.01.2010
Сообщений: 2,367
Записей в блоге: 6
05.04.2012, 20:46 9
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) Сохраняемся, и набираем в консоли
Код
ruby test.rb
5) Получаем результат (у меня работает на ruby 1.9.1):
Код
T:\>ruby test.rb
Приветик, ну и как Вас зовут?
Царь!
Царь!
это ваше полное имя?
1
0 / 0 / 0
Регистрация: 04.04.2012
Сообщений: 5
06.04.2012, 12:15  [ТС] 10
arni, вооо спасибо огромное, заработало!
0
06.04.2012, 12:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.04.2012, 12:15
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru