Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Какими установками можно заставить редактор кода VS.Net понимать кодировку 866  (Прочитано 12586 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ruddystepa
Гость
« : 07-09-2006 17:00 » 

Ситуация простая - пишу консольную программу на С++ в MS Visual Studio 2005. Сколько не искал, так и не нашел в установках, где определяется кодировка символов текста программы. В результате, вместо русских букв в консоли черт знает что. Конечно, можно каждый раз открывать готовый исходник в каком-нибудь редакторе, и сохранять в кодировке DOS-866 -собственно я так и делаю. Но это, согласитесь, неудобно. К тому же если открываешь перекодированный файл опять в VS, на месте русских строк опять видишь крякозябы. Так же не самый лучший вариант использовать функцию CharToOem() - какой смысл плодить код, когда проблема решается лишь перекодировкой текста исходиника. Может, все же где-то в установках редактора кода есть выбор кодировки - не может же в такой крутой системе быть такой убогий редактор!!!
Записан
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 07-09-2006 17:03 » 

ruddystepa, возможно вот решение: в списке ресурсов - кликай по кажному ресурсу правой кнопой, в свойствах ставь Russian. (по крайней мере в 6-й версии так)

Все русские надписи, скорее всего, уже придётся заново потом переписать
Записан

Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #2 : 07-09-2006 17:36 » 

ruddystepa, пиши исходный код в CP1251, а в cout отдай локаль CP866(cout.imbue) и будет порядок Ага

доберусь до работы приведу пример, сейчас лениво вспоминать. но в теории всё просто достаточно создать локаль(locale) для cp866 и отдать её в cout.imbue после этого весь вывод будет идти в нужной тебе кодировке.
Записан

Странно всё это....
ruddystepa
Гость
« Ответ #3 : 07-09-2006 19:50 » 

ruddystepa, возможно вот решение: в списке ресурсов - кликай по кажному ресурсу правой кнопой, в свойствах ставь Russian. (по крайней мере в 6-й версии так)

Все русские надписи, скорее всего, уже придётся заново потом переписать
Насчет ресурсов - это же консольная программа. В ней весь ввод и вывод идет через cout и cin и никаких ресурсов тут нет. А насчет 6 версии - на сайте http://flint-inc.ru/ есть программный пакет, который русифицирует средство MFC Application Wizard. После установки пакета при создании проекта MFC в списке языков появится русский. Но в данном случае он не поможет.
Записан
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #4 : 07-09-2006 20:09 » 

ruddystepa, ясно, ступил я про ресурсы Улыбаюсь)

а вот про русификацию это зря - это же извращение - русифицировать программы
Записан

Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #5 : 08-09-2006 05:29 » 

Странно для wcout нормально работает, а для cout, что-то не прокатывает. будем искать
Записан

Странно всё это....
ruddystepa
Гость
« Ответ #6 : 08-09-2006 08:16 » 

ruddystepa, ясно, ступил я про ресурсы Улыбаюсь)

а вот про русификацию это зря - это же извращение - русифицировать программы
Вы это Главному бухгалтеру скажите, который эту прогу юзать будет. Интересно, какие сюрпризы с зарплатой будут Вас ожидать после этого Ага)
Записан
ruddystepa
Гость
« Ответ #7 : 08-09-2006 08:30 » 

Кстати, в Borland C++Builder точно такая же заморочка - и установок кодировки символов для редактора кода тоже не нахожу. Может это беда всех крутых IDE? Ведь такая элементарная вещь, как сохранение в разных кодировках есть даже в самых убогих редакторах!!
Записан
Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #8 : 08-09-2006 08:59 » 

Я уже подобное спрашивал но для VC++ 6.0.
Посмотри вдруг поможет: http://forum.shelek.ru/index.php/topic,9347.0.html
Записан
ruddystepa
Гость
« Ответ #9 : 08-09-2006 09:22 » 

Я уже подобное спрашивал но для VC++ 6.0.
Посмотри вдруг поможет: http://forum.shelek.ru/index.php/topic,9347.0.html
Насчет CharToOem() конечно я читал уже. Но это же стрелять из пушки по воробьям!! Зачем заставлять программу делать то, что должен делать редактор кода?!! Я конечно понимаю, все имеют Пни, как минимум третьи, и вызов одной лишней функции для него пройдет практически незаметно. Но, видать сказывается то что изучать программирование я начал с Ассемблера - хочется пооптимальнее!!
Записан
Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #10 : 08-09-2006 10:28 » 

Ну что теперь поделаещь, если Бил забыл или не захотел писать поддержку "нашего могучего".
Используй Unicod или пиши собственную функцию конвертации с CP-1251 в 866.

А самое простое, набирай текст в редакторе способном сохранять файлы в кодировке 866, а потом уже компиль в Интегрированной среде.
Записан
ruddystepa
Гость
« Ответ #11 : 08-09-2006 12:37 » 

Проще по другому - писать прогу в IDE, а потом открывать исходник в редакторе и сохранять в нужной кодировке. Жалко, что нельзя к IDE плагин наваять.
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #12 : 08-09-2006 13:22 » 

ruddystepa, начнём с винды. Какая у тебя? И какой язык стоит как "НЕ юникодный"?

К чему я это спрашиываю - я работаю на немецкой винде (так получилось). Некоторые символы в немецкой страничке не совпадают со стандартом (аглицким), те - юникод.
В настройках винды стоит выбор немецкого языка как НЕ юникодного. И я могу запросто вписывать в текст немецкие буквы и выводить их куда угодно, например на консоль. Почему это не должно работать на других системах - непонятно?
« Последнее редактирование: 08-09-2006 13:26 от Джон » Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
andrystepa
Помогающий

ru
Offline Offline

« Ответ #13 : 11-09-2006 08:35 » 

У меня на работе стоит Windows 2003 Standart Server, а дома Windows XP SP2. Оба Russian Edition. В насторойках языка при любой установкие Винды я всегда указываю для программ не поддерживающих юникод русский язык. Таблица UTF-8 в списке таблиц выделена.
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #14 : 11-09-2006 09:39 » 

Хммм... Кинь пректик "Привет мир" и скомпилированный на твоей системе ЕХЕ на мыло. Что-то тут не чисто.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines