Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / WxWidgets (3.0.4), MS VS 2017 и кодировка русских символов / 7 сообщений из 7, страница 1 из 1
12.03.2018, 02:10
    #39613162
Юзер 01
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WxWidgets (3.0.4), MS VS 2017 и кодировка русских символов
Здравствуйте.

Библиотека WxWidgets (3.0.4) построена юникодной (по умолчанию, вообще-то):

Код: powershell
1.
nmake -f makefile.vc UNICODE=1



Ну вот.
Код: plaintext
1.
        wxMessageBox("Hello World!");


- выводит:
СообщениеHello World!
Т.е. все хорошо.
...
Пытаюсь вывести русские буквы:
Код: plaintext
1.
2.
3.
4.
5.
6.
        wxMessageBox("Hello, world!");
        wxMessageBox("Привет, мир!");
        wxMessageBox(L"Привет, мир!");
        wxMessageBox(_("Привет, мир!"));
        wxMessageBox(_T("Привет, мир!"));
        wxMessageBox(wxT("Привет, мир!"));


В любом случае получаю кракозябры:
СообщениеПривет, РјРёСЂ!


Вот так - хорошо:
Код: plaintext
1.
        wxMessageBox(wxString::FromUTF8("Привет, мир!"));


СообщениеПривет, мир!

Я так понимаю, MS VS 2017 исходники кодирует в UTF8. А wxString::FromUTF8() их переводит в юникод.

Что бы подкрутить или в программе или в настройках редактора студии, чтобы русский текст в исходниках сразу был в какой нужно кодировке, без wxString::FromUTF8()?
...
Рейтинг: 0 / 0
12.03.2018, 03:15
    #39613167
Юзер 01
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WxWidgets (3.0.4), MS VS 2017 и кодировка русских символов
Угу.
Сконвертировал "проблемный" исходник из UTF8 в "UCS-2 LittleEndian c BOM".
Заработало:

Код: plaintext
1.
2.
3.
4.
5.
6.
        wxMessageBox("Hello, world!");
        wxMessageBox("Привет, мир!");
        wxMessageBox(L"Привет, мир!");
        wxMessageBox(_("Привет, мир!"));
        wxMessageBox(_T("Привет, мир!"));
        wxMessageBox(wxT("Привет, мир!"));


- теперь выводит на русском. Ну, проект - один из демок wxWidgets, над которым я издеваюсь. Видимо, создавался бог знает когда и бог знает в чем, когда еще wxWidgets не поддерживали юникод.
.............................................
Создал с помощью визарда новый проект (графическое приложение MS Windows) - все исходники в "UCS-2 LittleEndian c BOM".
Т.е., все хорошо, "правильный юникод".
...
Вернулся к старому проекту, с исходной "проблемой".
Добавил (в MSVS) к проекту новый c++ файл, что-то в нем набрал, сохранил посмотрел - он "UTF8 без BOM". Т.е., фигня.
У обоих проектов в свойствах конфигурации указано "Использовать набор символов Юникода".

...
Вопрос: где в MSVS задается кодировка вновь создаваемых файлов исходников?
...
Рейтинг: 0 / 0
12.03.2018, 03:43
    #39613169
Юзер 01
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WxWidgets (3.0.4), MS VS 2017 и кодировка русских символов
А куда в MS VS 2017 делся пункт меню "Advanced Save Options"? Там можно было кодировку файла поменять.
Раньше в было: File -> Advanced Save Options. Теперь - нет.

Может, переместили куда-нибудь?
...
Рейтинг: 0 / 0
12.03.2018, 05:43
    #39613172
Юзер 01
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WxWidgets (3.0.4), MS VS 2017 и кодировка русских символов
Пардон, в сообщениях 21248364 , 21248373 первая строка в блоке
Код: plaintext
1.
2.
3.
4.
5.
6.
        wxMessageBox("Hello, world!");
        wxMessageBox("Привет, мир!");
        wxMessageBox(L"Привет, мир!");
        wxMessageBox(_("Привет, мир!"));
        wxMessageBox(_T("Привет, мир!"));
        wxMessageBox(wxT("Привет, мир!"));


- лишняя.

Извинения.
...
Рейтинг: 0 / 0
12.03.2018, 09:28
    #39613209
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WxWidgets (3.0.4), MS VS 2017 и кодировка русских символов
Юзер 01Вернулся к старому проекту, с исходной "проблемой".
Добавил (в MSVS) к проекту новый c++ файл, что-то в нем набрал, сохранил посмотрел - он "UTF8 без BOM". Т.е., фигня.
У обоих проектов в свойствах конфигурации указано "Использовать набор символов Юникода". UTF8 != UNICODE
...
Рейтинг: 0 / 0
12.03.2018, 09:45
    #39613221
Юзер 01
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WxWidgets (3.0.4), MS VS 2017 и кодировка русских символов
rdb_dev,
Да.

А что насчёт этого:
Юзер 01Вопрос: где в MSVS задается кодировка вновь создаваемых файлов исходников?

- ?
...
Рейтинг: 0 / 0
12.03.2018, 10:04
    #39613232
Юзер 01
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WxWidgets (3.0.4), MS VS 2017 и кодировка русских символов
Юзер 01А куда в MS VS 2017 делся пункт меню "Advanced Save Options"? Там можно было кодировку файла поменять.
Раньше в было: File -> Advanced Save Options. Теперь - нет.

Может, переместили куда-нибудь?
Угу, переместили, так и есть.
Теперь нужно вызвать "File" - "Save as...", потом внимательно посмотреть на кнопку "Save", теперь на ней есть ещё стрелка, направленная вниз. Если нажать на эту стрелку, появится тот самый "Advanced save", где можно кодировку поменять.

Вот и нафига этот авангард было делать...
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / WxWidgets (3.0.4), MS VS 2017 и кодировка русских символов / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]