Форум программистов, компьютерный форум, киберфорум
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. Показов 15269. Ответов 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): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru