|
-21 / 3 / 0
Регистрация: 01.09.2017
Сообщений: 21
|
||||||
Функция setlocale( LC_ALL,"Russian" ) в Visual Studio 201701.09.2017, 00:55. Показов 104379. Ответов 17
Метки нет (Все метки)
Здарова всем. Давно уже пользуюсь советами с этого форума, но обращаюсь сюда за помощью впервые. Начал писать простейшие консольные игры на Visual Studio. До этого момента пользовался исключительно выводом латиницы. Когда вопрос встал о отображении кириллицы через операторы printf и cout(так же wcout) начались проблемы с иероглифами, которые я ожидал решить написанием одной строчки кода из интернета. Но не тут-то было. Даже отдельный проект создал чисто для работы с русским текстом. Всё, что я перепробовал, записано ниже, ничего из этого не помогло, смена шрифта в настройках консоли на Lucida Console(который в моём случае влияет только на толщину иероглифов) в том числе. Максимум чего я добился, это смены "страшных" иероглифов чуть менее страшными. Но пик моей исследовательской деятельности пришелся на присвоение массиву типа wchar_t введённых через wcin символов кириллицы и вывод их на экран через wcout в адекватном формате. При том, что сообщение отладчика "Для продолжения нажмите..." отображается без никаких проблем. Возможно, это сама Студия что-то химичит и нужно либо лезть в настройки шрифтов(что я делал, и не помогло, изменения вернул), либо сносить её и ставить Community версию, либо я где-то туплю и не вижу очевидного. Как мне организовать вывод на экран сообщения, написанного кириллицей? Про то, что на Linux такой проблемы не встречается, тоже слышал, система Windows 7 x64
0
|
||||||
| 01.09.2017, 00:55 | |
|
Ответы с готовыми решениями:
17
Setlocale в visual studio 2017 Не работает setlocale(LC_ALL,"Russian") или Говорим по русски |
|
Рэмбо комнатный
103 / 103 / 99
Регистрация: 05.03.2017
Сообщений: 511
|
|
| 01.09.2017, 01:33 | |
|
попробуй
setlocale(0,""); или setlocale(LC_ALL,"Russian");
0
|
|
|
зомбяк
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
|||||||
| 01.09.2017, 02:01 | |||||||
Сообщение было отмечено FeewrE как решение
Решение1) в студии через главное меню (в старых версиях было в File->Advanced Save options) пересохраняешь в кодировку CP1251 2) указать, что у тебя строки в виде wchar_t, а не char:
1
|
|||||||
|
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
|
||||||||||||
| 01.09.2017, 04:36 | ||||||||||||
Если без настройки шрифтов в консоли, и с широкими символами, то, в студии, такие варианты работают: Кликните здесь для просмотра всего текста
0
|
||||||||||||
| 01.09.2017, 06:50 | |
|
FeewrE, чтобы работилаи российские шрифты, надо качать отечетсвенный компилятор
0
|
|
|
Рэмбо комнатный
103 / 103 / 99
Регистрация: 05.03.2017
Сообщений: 511
|
|
| 01.09.2017, 08:02 | |
|
Ferrari F1, можешь инфы кинуть годной по алгоритмам?)
0
|
|
|
1059 / 980 / 153
Регистрация: 10.08.2015
Сообщений: 5,316
|
|
| 01.09.2017, 08:50 | |
|
0
|
|
| 01.09.2017, 12:08 | |
|
GeFacle, липпман, в конце книги объяснение всех функций из <algorithm>
1
|
|
|
0 / 0 / 0
Регистрация: 02.09.2017
Сообщений: 1
|
||||||
| 02.09.2017, 01:42 | ||||||
|
В Visual Studio 2017:
Файл - Сохранить <Имя файла.cpp> как... В открывшемся окне - стрелка вниз у клавиши [Сохранить] - Сохранить с кодировкой... Выбираем кодировку "Кириллица (Windows) - кодовая страница 1251" и [Ок] После этого приведенный исходный код (лишние строчки удалены):
0
|
||||||
|
-21 / 3 / 0
Регистрация: 01.09.2017
Сообщений: 21
|
|
| 05.09.2017, 21:14 [ТС] | |
|
Спасибо всем ответившим, особенно TRam_ за то, что подсказал в чём суть-проблема, и где надо копать. Решил всё снятием галочки в настройках с "Автоматически определять кодировку UTF-8 без сигнатуры". Возможно, подгрузка PDB файлов символов с серверов Microsoft помогла, возможно, я ошибаюсь. После сих манипуляций функция setlocale, о чудо, заработала. Всем бобра
3
|
|
|
15 / 14 / 2
Регистрация: 17.08.2012
Сообщений: 109
|
|
| 27.09.2017, 23:58 | |
|
FeewrE, для начала, первый пункт верен, чтобы исходники сохранялись в "правильной" (по мнению Microsoft) кодировке, снимаем галочку.
Далее, второй пункт. Ставим галочку, чтобы setlocale(0, "") заработала. Перезапускаем IDE - готово. Единственное адекватное решение проблемы, остальное какие-то дикие костыли (перекодирование в программе, лол, мне теперь так в каждом прожекте делать?), особенно смена шрифта рассмешила (потому как ничего не дает) ![]() До Visual Studio, значит, справлялись дефолтными настройками, а тут вдруг надо все переиначить..
1
|
|
|
0 / 0 / 1
Регистрация: 05.04.2016
Сообщений: 134
|
||||||
| 04.01.2019, 20:31 | ||||||
|
Ребята, у меня тоже такая проблема, каракули вместо кириллицы. Вышеописанное действие от FeewrE не помогло.
Подскажите, что делать. Код прилагается.
0
|
||||||
|
-21 / 3 / 0
Регистрация: 01.09.2017
Сообщений: 21
|
|||||||||||||
| 03.02.2019, 15:03 [ТС] | |||||||||||||
0
|
|||||||||||||
|
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
|
|
| 03.02.2019, 15:06 | |
|
FeewrE, буквы
a и i в слове Russian перепутаны.
0
|
|
|
Нарушитель
10225 / 5655 / 1257
Регистрация: 12.03.2015
Сообщений: 26,180
|
|
| 03.02.2019, 15:28 | |
|
Товарищи, 21-й век на дворе, ёмаё, забудьте ужэ про национальные кодировки, юзайте всегда UTF-8, как это делаю я.
0
|
|
|
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
|
|
| 03.02.2019, 15:49 | |
|
Verevkin, я, например, использую оба способа. Для небольших учебных задачек проще однобайтовую кодировку использовать, да и другим понятнее.
0
|
|
|
Нарушитель
10225 / 5655 / 1257
Регистрация: 12.03.2015
Сообщений: 26,180
|
||
| 03.02.2019, 15:58 | ||
|
Или UTF-8 не подходит для учебных задач? ![]() Я предлагаю перестать заниматься ерундой и не плодить вопросы про "кракозябры", от которых уже интернеты по швам трещат, а добиться хоть какой-то стандартизации. Пусть не сразу, но для всех.
0
|
||
|
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
|
|
| 03.02.2019, 16:11 | |
|
Verevkin, 99% примеров в книгах и других ресурсах используют, к примеру,
cout, а не wcout и т.п. Среднестатистический пользователь, задающий вопросы в этом разделе, в глаза не видел wcout. Если целенаправленно самому разбираться с чем то, то можно, конечно, использовать и Юникод, да и в чуть более серьезных проектах это избавляет от части головной боли.
0
|
|
| 03.02.2019, 16:11 | |
|
Помогаю со студенческими работами здесь
18
Неправильное отображение русского текста в консоли при использовании setlocale(LC_ALL, "Russian") Не работает setlocale (LC_ALL ,"Russian");
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|