Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
-46 / 3 / 0
Регистрация: 17.12.2011
Сообщений: 609

Настройка консоли на отображение Unicode

26.10.2025, 14:29. Показов 2387. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.10.2025, 14:29
Ответы с готовыми решениями:

Настройка консоли: Unicode, размер, шрифт (корректный ввод/вывод строк с кириллицей, пробелами, знаками юникода)
Всем Привет! Решил поделится опытом, к обсуждению: Простой способ больше не вспоминать о...

Как в консоли или в окне winapi отображать определенный набор букв из стандарта unicode?
Как в консоли или в окне winapi отображать определенный набор букв из стандарта unicode?

Обработка Unicode - отображение символов
Мне каким-то образом нужно обработать символы импликации, конъюкции и дизъюнкции (например,...

20
Злостный нарушитель
 Аватар для Verevkin
10294 / 5718 / 1267
Регистрация: 12.03.2015
Сообщений: 26,481
26.10.2025, 14:43
Так норм?



0
-46 / 3 / 0
Регистрация: 17.12.2011
Сообщений: 609
26.10.2025, 15:10  [ТС]
Цитата Сообщение от Verevkin Посмотреть сообщение
Так норм?
Да. И как это сделать?
0
Злостный нарушитель
 Аватар для Verevkin
10294 / 5718 / 1267
Регистрация: 12.03.2015
Сообщений: 26,481
26.10.2025, 15:14
Цитата Сообщение от DDim1000 Посмотреть сообщение
Да. И как это сделать?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
// файл исходника сохранён в кодировке UTF-8
#include <iostream>
 
using namespace std;
 
static const string SYMBOLS = "❌ ✅ ⚡ ♥ ♦ ♣ ♠ ★ ☆ ☀ ☁ ☂ ☃";
 
int main(void)
{ 
  system("chcp 65001 > nul");
  printf("%s\n", SYMBOLS.c_str());
  return EXIT_SUCCESS;
}
1
-46 / 3 / 0
Регистрация: 17.12.2011
Сообщений: 609
26.10.2025, 15:33  [ТС]
А как такую строку вывести?:
❌Записей с именем 'Соломон' не найдено!
C++
1
cout << u8"❌ Записей с именем '" << name << u8"' не найдено!" << endl;
0
Злостный нарушитель
 Аватар для Verevkin
10294 / 5718 / 1267
Регистрация: 12.03.2015
Сообщений: 26,481
26.10.2025, 15:56
Цитата Сообщение от DDim1000 Посмотреть сообщение
А как такую строку вывести?:
Не понимаю, где проблема?



C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// файл исходника сохранён в кодировке UTF-8
#include <iostream>
using namespace std;
 
static const string SYMBOLS = "❌ ✅ ⚡ ♥ ♦ ♣ ♠ ★ ☆ ☀ ☁ ☂ ☃";
 
int main(void)
{ 
  system("chcp 65001 > nul");
  printf("%s\n", SYMBOLS.c_str());
  
  string name = "Соломон";
  cout << u8"❌ Записей с именем '" << name << u8"' не найдено!" << endl;
  
  return EXIT_SUCCESS;
}
0
-46 / 3 / 0
Регистрация: 17.12.2011
Сообщений: 609
26.10.2025, 18:28  [ТС]
У меня не работает. Наверно, я делаю что-то ни так...
Миниатюры
Настройка консоли на отображение Unicode  
0
Злостный нарушитель
 Аватар для Verevkin
10294 / 5718 / 1267
Регистрация: 12.03.2015
Сообщений: 26,481
26.10.2025, 18:48
Цитата Сообщение от DDim1000 Посмотреть сообщение
У меня не работает. Наверно, я делаю что-то ни так...
Наверно. Но я хз.



Пришлось достать из пыльного чулана Visual Studio и потыкать её трёхметровой палкой, слегка загуглив про кодовую страницу проекта:



Обрати внимание на ворнинги, которые тебе пишет компилятор. Это "жжжжжжжжжж" неспроста. Тут тебе не шахматы, здесь думать надо.
Вложения
Тип файла: 7z xxx.7z (564.4 Кб, 9 просмотров)
0
 Аватар для Pphantom
2275 / 1530 / 714
Регистрация: 17.03.2022
Сообщений: 4,912
26.10.2025, 21:13
Цитата Сообщение от DDim1000 Посмотреть сообщение
У меня не работает. Наверно, я делаю что-то ни так...
Ворнинги читать тоже полезно, но еще полезнее понять, а где тут, собственно, консоль.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6178 / 2873 / 1042
Регистрация: 01.06.2021
Сообщений: 10,512
27.10.2025, 14:30
Цитата Сообщение от Verevkin Посмотреть сообщение
// файл исходника сохранён в кодировке UTF-8
DDim1000, если не хочешь менять кодировку исходника, то предлагаю несколько вариантов в коде ниже.
Мне нравится, например, первый вариант (s1), который образуется так: \u + 4 hex цифры
Учитывая, что все твои юникодные символы входят в BMP (Basic Multilingual Plane), который охватывает диапазон \u0000 - \uFFFF, то не вижу смысла использовать (s2) \U + 8 hex цифр. Хотя, именно этот вариант удобен для всяких эмодзи и прочего, поскольку чаще они выходят из BMP.
Ну а что касается третьего способа (s3), то он заключается в использовании \x + 2 hex цифры на каждый байт UTF-8. Правда, в этом варианте строка занимает больше места и может увеличить размер сорца.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include <cstdlib>
 
const char* s1 = "\u274C \u2705 \u26A1 \u2665 \u2666 \u2663 \u2660 \u2605 \u2606 \u2600 \u2601 \u2602 \u2603";
 
const char* s2 = "\U0000274C \U00002705 \U000026A1 \U00002665 \U00002666 \U00002663 \U00002660 \U00002605 \U00002606 \U00002600 \U00002601 \U00002602 \U00002603";
 
const char* s3 = 
    "\xE2\x9D\x8C "
    "\xE2\x9C\x85 "
    "\xE2\x9A\xA1 "
    "\xE2\x99\xA5 "
    "\xE2\x99\xA6 "
    "\xE2\x99\xA3 "
    "\xE2\x99\xA0 "
    "\xE2\x98\x85 "
    "\xE2\x98\x86 "
    "\xE2\x98\x80 "
    "\xE2\x98\x81 "
    "\xE2\x98\x82 "
    "\xE2\x98\x83";
 
 
int main(void)
{ 
    std::system("chcp 65001 > nul");
    std::cout << s1 << std::endl;
    std::cout << s2 << std::endl;
    std::cout << s3 << std::endl;
}
0
-46 / 3 / 0
Регистрация: 17.12.2011
Сообщений: 609
03.11.2025, 18:01  [ТС]
Что-то не работает... Я хоть правельно указываю кодировку?
Миниатюры
Настройка консоли на отображение Unicode   Настройка консоли на отображение Unicode  
0
Злостный нарушитель
 Аватар для Verevkin
10294 / 5718 / 1267
Регистрация: 12.03.2015
Сообщений: 26,481
03.11.2025, 19:01
Цитата Сообщение от DDim1000 Посмотреть сообщение
Что-то не работает... Я хоть правельно указываю кодировку?
Да ты задолбал. Я же выложил рабочий тестовый проект. Какого хрена, чел, чо с тобой не так?

0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6178 / 2873 / 1042
Регистрация: 01.06.2021
Сообщений: 10,512
03.11.2025, 19:13
Verevkin, у него проблема не с кодом, а с консолью VS, которая игнорирует system("chcp 65001 > nul");
0
Злостный нарушитель
 Аватар для Verevkin
10294 / 5718 / 1267
Регистрация: 12.03.2015
Сообщений: 26,481
03.11.2025, 19:17
Цитата Сообщение от Royal_X Посмотреть сообщение
у него проблема не с кодом, а с консолью VS, которая игнорирует system("chcp 65001 > nul");
Пачиму у меня не игнорирует? ЧЯДНТ?
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6178 / 2873 / 1042
Регистрация: 01.06.2021
Сообщений: 10,512
03.11.2025, 19:20
Verevkin, вот мой код. И тут даже исходнику не нужен юникод.



Видишь, что всё работает. Но, тем не менее, у ТС какие-то проблемы.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6178 / 2873 / 1042
Регистрация: 01.06.2021
Сообщений: 10,512
03.11.2025, 19:23
Verevkin, хз, может шрифт у него не поддерживает эти символы. У меня Cascadia, а у ТС вроде Consolas
0
Злостный нарушитель
 Аватар для Verevkin
10294 / 5718 / 1267
Регистрация: 12.03.2015
Сообщений: 26,481
03.11.2025, 19:24
Цитата Сообщение от Royal_X Посмотреть сообщение
Видишь, что всё работает.
ЧТДНТ?

Добавлено через 29 секунд
Цитата Сообщение от Royal_X Посмотреть сообщение
У меня Cascadia
У меня Ubuntu Mono, 12.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6178 / 2873 / 1042
Регистрация: 01.06.2021
Сообщений: 10,512
03.11.2025, 19:26
Verevkin, если чё, твой код тоже у меня нормально работает.


Поскольку твой код требует смены кодировки сорца на юникод, я полагал, что ТС не знает, как менять кодировку, поэтому предложил код, который не требует смены кодировки исходника. Но у него и мой код не работает...
0
Злостный нарушитель
 Аватар для Verevkin
10294 / 5718 / 1267
Регистрация: 12.03.2015
Сообщений: 26,481
03.11.2025, 19:28
Цитата Сообщение от Royal_X Посмотреть сообщение
если чё, твой код у меня тоже нормально работает
Да неужели?!!!

0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6178 / 2873 / 1042
Регистрация: 01.06.2021
Сообщений: 10,512
03.11.2025, 19:33
Цитата Сообщение от Verevkin Посмотреть сообщение
У меня Ubuntu Mono, 12.
значит, не зря эти люди старались
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.11.2025, 19:33
Помогаю со студенческими работами здесь

Отображение Unicode в Memo. С++ Билдер 6.
день добрый! Подскажите, пожалуйста, как отобразить текст .txt формате с кодировкой &quot;UTF-16LE&quot; в...

Настройка unicode. Ошибка при выполнении программы
Здравствуйте. Знаю, что есть tchar.h, но мне нужно настроить unicode самому. #ifdef UNICODE...

Клавиши F1-F12 в консоли, и работа с мышкой в консоли
Я искал на сайте, но не нашел упоминания о том как обрабатывать и или узнавать где находится курсор...

считывание с консоли ( не с клавы, а именно с консоли)
нужно написать функцию которая возвращает string в котором написано 500 символов которые были...

Реализация кроссфплатформенности консоли, разрешение консоли
Можно ли как-то реализовать просчёт количества пикселей экрана? Просто есть вот такая программа,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru