Форум программистов, компьютерный форум, киберфорум
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. Показов 15283. Ответов 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru