Вывод кириллицы

В этой теме 11 ответов, 4 участника, последнее обновление  Mihail 9 мес., 1 неделя назад.

Просмотр 12 сообщений - с 1 по 12 (из 12 всего)
  • Автор
    Сообщения
  • #4714
    EgorSer
    EgorSer
    Участник
    Сообщений:5

    Зарегистрирован:
    08.06.2017

    Репутация:0

    Вывожу текст на экран по методу 12 урока. Сначала все было нормально, но потом, без видимых причин, начали выводиться иероглифы. Понимаю , что проблема с кодировкой символов , но не знаю как исправить

    #4721

    KindRedSand
    Участник
    Сообщений:82

    Зарегистрирован:
    05.04.2017

    Репутация:30

    Не используй конвертацию в std::string. Только sf::String поддерживает юникод

    #4725
    EgorSer
    EgorSer
    Участник
    Сообщений:5

    Зарегистрирован:
    08.06.2017

    Репутация:0

    Не помогло. Те же иероглифы. Проблема не только в стринге. Название окна и даже кириллица в консоли так же выходят. Может можно как-то внутри кода или внутри IDE(Code::Blocks) изменить кодировку?

    #4726

    KindRedSand
    Участник
    Сообщений:82

    Зарегистрирован:
    05.04.2017

    Репутация:30

     

    #4727
    EgorSer
    EgorSer
    Участник
    Сообщений:5

    Зарегистрирован:
    08.06.2017

    Репутация:0

    Не работает , как SetConsolCP(), хотя они ,по-моему, меняют вывод только в консоли, а не окне.(В других проектах это работает,а в проекте с SFML почему-то нет)

    #4728
    +1

    tobidashi
    Участник
    Сообщений:16

    Зарегистрирован:
    25.05.2017

    Репутация:7

    Попробуй следующее.
    Установить в редакторе кодировку UTF-8: Settings -> Editor -> General settings -> Encoding settings.
    Убедиться, что шрифт, который ты загружаешь в текст, поддерживает кириллицу.
    Передать в текст широкую строку:

    #4729
    EgorSer
    EgorSer
    Участник
    Сообщений:5

    Зарегистрирован:
    08.06.2017

    Репутация:0

    Шрифт поддерживает.

    С широкой строкой текст выводится, но появляется еще одна проблема: вместе с текстом нужно вывести строку:

    Здесь ругается компилятор  на знак + , ведь L”камней собрано” для него уже не строка, а мы просим прибавить к этому строку.Пытался в коде как-то обойти или заменить эту строку, но ничего рабочего не придумал.
    Когда переключаю кодировки в настройках, текст меняется, но не становится кириллицей.Видимо, окно использует какую-то свою кодировку, не зависящую от IDE

    #4730
    +1

    tobidashi
    Участник
    Сообщений:16

    Зарегистрирован:
    25.05.2017

    Репутация:7

    Можно так:

    #4731
    EgorSer
    EgorSer
    Участник
    Сообщений:5

    Зарегистрирован:
    08.06.2017

    Репутация:0

    Теоретически должно работать, но почему-то не работает

    #4732
    +1

    tobidashi
    Участник
    Сообщений:16

    Зарегистрирован:
    25.05.2017

    Репутация:7

    Проверил у себя – всё работает. Если что-то не работает, надо конкретно описать что именно происходит, желательно ещё прикрепить код.

    Можно попробовать такой вариант:

    Проверил его у себя, он тоже работает.

    #4733
    EgorSer
    EgorSer
    Участник
    Сообщений:5

    Зарегистрирован:
    08.06.2017

    Репутация:0

    Создал новый проект и собрал заново- все работает. Не знаю что это было, но спасибо огромное!

    #4958

    Mihail
    Участник
    Сообщений:3

    Зарегистрирован:
    08.01.2018

    Репутация:2

    Я проблему с русским текстом решил так:

    Весь текст держу как wchar_t и всё норм.

    Сам StringHelper выглядит так:

     

Просмотр 12 сообщений - с 1 по 12 (из 12 всего)

Для ответа в этой теме необходимо авторизоваться.