1. Соблюдайте Правила форума и проявляйте уважение к другим участникам беседы.

OpenSource Корректное отображение кириллицы в консоле

Тема в разделе 'Кодинг/Собственные решения', создана пользователем Olim98, 3 окт 2013.

  1. Olim98 Наш человек

    Сообщения:
    7
    Спасибы:
    2
    Открываем файл ghost.cpp и добавляем перед строкой
    Код:
    void CONSOLE_Print( string message )
    вот этот код
    Код:
    string utf2oem( string const & in_str )  {
      int n = MultiByteToWideChar( CP_UTF8, 0, in_str.data(), in_str.size(), NULL, 0 ); 
      if( n == 0 ) 
        return in_str; 
     
      wstring tmp;
      tmp.resize( n );
     
      int ret = MultiByteToWideChar(CP_UTF8, 0, in_str.data(), in_str.size(), &tmp.front(), tmp.size() );
      if( ret == 0 )
        return in_str; 
     
      string out_str;
      out_str.resize( n );
     
      ret = WideCharToMultiByte(CP_OEMCP, 0, tmp.data(), n, &out_str.front(), n, NULL, NULL); 
     
      return( ret == 0 ? in_str : out_str );
    } 
    
    и там же вместо строки
    Код:
    cout << message << endl;
    
    вставляем
    Код:
    cout << utf2oem(message) << endl;
    
    теперь весь текст будет отображаться корректно!
    Mirar и Sparko_Dima нравится это.
  2. Sparko_Dima Старожила

    Сообщения:
    744
    Спасибы:
    104
    Сборка бота GHost:
    Ghost Sparko
    Дата начала использования бота:
    10.10.09
    крутой:D но для оне не прокатит -_-
  3. Guard Старожила

    Сообщения:
    473
    Спасибы:
    47
    Сборка бота GHost:
    Ghost++ RAKAL Edition
    Дата начала использования бота:
    00.00.2009
    Skype:
    Мой статус
    Для нокиа 6300 тоже не прокатит. Ведь в названии написано для консоли...
    Oxxxymiron, iNesquik, Olim98 и ещё 1-му нравится это.
  4. Max5 Старожила

    Сообщения:
    350
    Спасибы:
    64
    Сборка бота GHost:
    GhostOne 1.7.266
    Дата начала использования бота:
    14.05.2013
    а для one можно похожее замутить?
  5. Sparko_Dima Старожила

    Сообщения:
    744
    Спасибы:
    104
    Сборка бота GHost:
    Ghost Sparko
    Дата начала использования бота:
    10.10.09
    тебе плохо виден мой пост?
  6. Doterok Старожила

    Сообщения:
    923
    Спасибы:
    171
    Сборка бота GHost:
    Ghost ++ 17.2
    Дата начала использования бота:
    2011
    Обоснуй
  7. Sparko_Dima Старожила

    Сообщения:
    744
    Спасибы:
    104
    Сборка бота GHost:
    Ghost Sparko
    Дата начала использования бота:
    10.10.09
    что обосновывать:D что для оне не прокатит?
  8. Sparko_Dima Старожила

    Сообщения:
    744
    Спасибы:
    104
    Сборка бота GHost:
    Ghost Sparko
    Дата начала использования бота:
    10.10.09
    у оне оболочка есть, смысл?
  9. ELITE Гуру

    Сообщения:
    252
    Спасибы:
    23
    Дата начала использования бота:
    00.00.2012
    да и этот код не прокатит на бустах ниже 52
    а 52 - это уже VS10
    а VS10 - это правки кода под неё у бота во многих местах
  10. Doterok Старожила

    Сообщения:
    923
    Спасибы:
    171
    Сборка бота GHost:
    Ghost ++ 17.2
    Дата начала использования бота:
    2011
    Попахивает на*овым
  11. ELITE Гуру

    Сообщения:
    252
    Спасибы:
    23
    Дата начала использования бота:
    00.00.2012
    Код:
     int ret = MultiByteToWideChar(CP_UTF8, 0, in_str.data(), in_str.size(), &tmp.front(), tmp.size() );
    .front() - не ниже 48 либ только есть
    а VS 2008 поддерживает не выше 42
    -------
    я неделю искал заменитель - на VS2008 невозможно получить в консоль UTF8 - да в лог можно заставить писать в утф8
    но вот в виндовой ср1251 без проблем, но это если не надо вывод в SQL базу и на сайт...
  12. Olim98 Наш человек

    Сообщения:
    7
    Спасибы:
    2
    переходи на 2010, а лучше на 2012. Будь в тренде)))
  13. Sparko_Dima Старожила

    Сообщения:
    744
    Спасибы:
    104
    Сборка бота GHost:
    Ghost Sparko
    Дата начала использования бота:
    10.10.09
    я ему перевел и так бота на 2010 vs:D
  14. Olim98 Наш человек

    Сообщения:
    7
    Спасибы:
    2
    там портировать ничего не надо, у меня бот без танцов с бубном сразу скомпилился на vs2012
  15. Sparko_Dima Старожила

    Сообщения:
    744
    Спасибы:
    104
    Сборка бота GHost:
    Ghost Sparko
    Дата начала использования бота:
    10.10.09
    у тебя последний ластрелиз в нем и норм комплирует
  16. Sparko_Dima Старожила

    Сообщения:
    744
    Спасибы:
    104
    Сборка бота GHost:
    Ghost Sparko
    Дата начала использования бота:
    10.10.09
    попробуй взять 500 релиз или тот же оне тоже самое будет
  17. Olim98 Наш человек

    Сообщения:
    7
    Спасибы:
    2
    Я имел ввиду, если на 2010 скомпилиться, то и на 2012 тоже. А не если 2008 скомпилиться то и на 2012 тоже))
  18. Budrin Гуру

    Сообщения:
    62
    Спасибы:
    4
    Дата начала использования бота:
    22.09.2004
    Я могу вам на модеме скомпилить, за ваш же счет. Исходники есть, которые написаны на C++
    Не важно каким инструментом компилируешь, главное как. В VS всего лишь либы подбирать надо (boost) в зависимости от версии VS идет версия boost.
    VS автоматически обновляет свои проекты со старых версий.
  19. ELITE Гуру

    Сообщения:
    252
    Спасибы:
    23
    Дата начала использования бота:
    00.00.2012
    да но при таких обновлениях часто возникают мелкие ошибки, которые не дадут скомпилировать
    и новичек их чаще всего не может сам исправить
  20. molodec Можно доверять

    Сообщения:
    25
    Спасибы:
    2
    Дата начала использования бота:
    1.04.2016
    не комплится( выдает ошибку: front: не является членом "std::basic_string<_Elem,_Traits,_Ax>"
    бусты обновил до 52 (без этого кода, бот нормально комплится на 52 бустах)
    бот ghost one + пару изменений
    мб что-то где-то дописать нужно? помогите разобраться плз