Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 68, средняя оценка - 4.65
american idiot
3 / 3 / 0
Регистрация: 04.12.2009
Сообщений: 51
#1

Украинские символы в консоли - C++

06.10.2010, 08:18. Просмотров 9132. Ответов 48
Метки нет (Все метки)

Подскажите, как сделать, чтобы в консоли корректно отображались буквы украинского алфавита, в частности буква "і". Такие буквы, как "є" и "ї" отображаются правильно. Проблема актуальна как для ISO/ANSI, так и для .net

Добавлено через 23 часа 19 минут
неужели никто не знает решения данной проблемы?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.10.2010, 08:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Украинские символы в консоли (C++):

Странные символы в консоли с++ - C++
Доброго времени суток!Подскажите пожалуйста по одному вопросу. Столкнулся с символом мелодии в консоли : запустил, ввел данные и на экран...

Спец-символы в консоли - C++
Почему-то когда я пишу управляющую последовательность вроде cout << '\0x5c'; мне консоль выдает примерно 9-значное число вместо '\'.....

Цветные символы в консоли. - C++
Уважаемые, подскажите как сделать символы в консоли цветными. IDE - VStudio 2008.

Непонятные символы в консоли - C++
Доброго времени суток! Работаю со строками, перезагружаю операторы, но на консоль вместе с результатом выводятся какие-то непонятные...

Непонятные символы в консоли - C++
Выводит непонятные символы (пики, стрелки), скрин снизу, посмотрите. Вот сам код: #include <iostream> using namespace std; int...

Символы неизвестного происхождения в консоли - C++
int main() { using namespace std; setlocale(0, ""); int count; cout << "Введите кол-во точек : "; cin >> count; char...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Croessmah
Модератор
Эксперт CЭксперт С++
13147 / 7410 / 830
Регистрация: 27.09.2012
Сообщений: 18,244
Записей в блоге: 3
Завершенные тесты: 1
13.12.2014, 22:28 #31
Цитата Сообщение от Вадим Устименко Посмотреть сообщение
alt+г
Возможно, нужна расширенная клавиатура.
Думаю, за три года он её сам нашел
Вадим Устименко
1 / 1 / 0
Регистрация: 09.10.2014
Сообщений: 35
14.12.2014, 02:45 #32
Croessmah, не обратил внимания
DrOffset
7095 / 4236 / 951
Регистрация: 30.01.2014
Сообщений: 7,012
14.12.2014, 04:15 #33
Цитата Сообщение от IrineK Посмотреть сообщение
Нет - только английская.
Ну вообще-то есть решение. Консоль в Windows NT в основе своей юникодная, DOS кодировка - это просто режим по-умолчанию. В юникоде (utf16) напрямую ввод\вывод можно осуществлять через api WriteConsoleW\ReadConsoleW.

Цитата Сообщение от nmcf Посмотреть сообщение
А что, у украинской i, какой-то особый код, отличный от латинской?
Вообще-то да.
Alessanro
0 / 0 / 0
Регистрация: 21.07.2015
Сообщений: 3
26.07.2015, 13:57 #34
Я пользуюсь таким кодом для вывода украинских 'і' и 'ґ'
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <vcl.h>
#include <stdio.h>
#include <iostream>
#include <clocale>
int main(){
system("chcp 1251 > text");
char word[100];
for(int i=0;(word[i]=getchar())!=EOF; ++i){
        putchar(word[i]);
}
system("pause");
    return 0;
}
Украинские символы в консоли
Кстати, на раскладке есть 'ґ', нужно нажать 'г'+Alt
Maxters
0 / 0 / 0
Регистрация: 21.03.2015
Сообщений: 15
29.07.2015, 13:59 #35
C++
1
setlocale(LC_ALL,"Ukrainian")
nmcf
5310 / 4630 / 1550
Регистрация: 14.04.2014
Сообщений: 18,437
29.07.2015, 20:48 #36
Ukrainian? А есть такая локаль?
DrOffset
7095 / 4236 / 951
Регистрация: 30.01.2014
Сообщений: 7,012
29.07.2015, 20:53 #37
Цитата Сообщение от nmcf Посмотреть сообщение
Ukrainian? А есть такая локаль?
Есть. Да почти для любого языка есть, главное чтоб шрифт поддерживал.
Другое дело, что, например, русский и украинский одновременно уже не используешь.
Самый верный вариант - это в юникоде все делать.
nmcf
5310 / 4630 / 1550
Регистрация: 14.04.2014
Сообщений: 18,437
29.07.2015, 20:57 #38
В MSDN сказано, что кодировки для русского и украинского одни и те же: 1251 и 866.
DrOffset
7095 / 4236 / 951
Регистрация: 30.01.2014
Сообщений: 7,012
29.07.2015, 21:11 #39
Цитата Сообщение от nmcf Посмотреть сообщение
В MSDN сказано, что кодировки для русского и украинского одни и те же:
Как это отменяет наличие локали? Кодировка - это еще не все.
В линуксе может быть такая: uk_UA.UTF-8
В виндовс - такая: Ukrainian_Ukraine.1251
Локаль же у нас не только кодировку задает, а еще национальные особенности, в том числе символы валюты и т.д.

Добавлено через 5 минут
Собственно, вот список: https://msdn.microsoft.com/en-us/lib...=vs.85%29.aspx
Сабж там присутствует.
nmcf
5310 / 4630 / 1550
Регистрация: 14.04.2014
Сообщений: 18,437
29.07.2015, 21:17 #40
Я не про локаль, а про невозможность работать с двумя языками.
DrOffset
29.07.2015, 21:23
  #41

Не по теме:

Цитата Сообщение от nmcf Посмотреть сообщение
Я не про локаль, а про невозможность работать с двумя языками.
А. Пардон, я не так понял предыдущее высказывание значит. Ну в значит в Win не будет проблемы.

dbatsenko
0 / 0 / 0
Регистрация: 15.10.2015
Сообщений: 2
15.10.2015, 00:54 #42
Привет всем!

Точно рабочий код в Visual Studio 2013 Community Edition, Windows 7 English (настройки: ukrainian for non unicode programs, lucida console):

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<iostream>;
#include <locale>;
#include "windows.h";
 
using namespace std;
 
void main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    cout << "Привіт, ґудзик!" << endl;
    //std::wcout << "Привіт, ґудзик!" << std::endl; //это тоже работает
    system("pause");
 
}
dbatsenko
0 / 0 / 0
Регистрация: 15.10.2015
Сообщений: 2
15.10.2015, 01:04 #43
Скриншот почему-то не прикрепился в предыдущем посте. Вот подтверждение.
Миниатюры
Украинские символы в консоли  
doslidnik
0 / 0 / 0
Регистрация: 04.12.2015
Сообщений: 5
04.12.2015, 12:02 #44
Ось можливе рішення проблеми
http://replace.org.ua/topic/3626/

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include<iostream>;
#include <locale>;
#include "windows.h";
 
using namespace std;
 
void main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    cout << "Привіт, ґудзик!" << endl;
    //std::wcout << "Привіт, ґудзик!" << std::endl; //теж працює корректно
    system("pause");
nmcf
5310 / 4630 / 1550
Регистрация: 14.04.2014
Сообщений: 18,437
04.12.2015, 13:21 #45
doslidnik, в чём там решение? "ukrainian for non unicode programs"? Так кодировки-то отдельной всё равно нет: 1251 и для русского, и для украинского.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.12.2015, 13:21
Привет! Вот еще темы с ответами:

Некорректно отображаются символы в консоли - C++
Как настроить вывод символов, чтобы консоль не переносила часть слова или числа?

В консоли не отображаются никакие символы - C++
После компиляции в окне не отображаются ни какие символы... приложение dev c++ 5.4.2

Русские символы в консоли на другом компьютере - C++
Запускаю .exe консольной программы на другом компьютере - в ответ получаю иероглифы. На другом компьютере нет MSC10, на котором писалась...

Неправильно считываются русские символы из консоли - C++
упорно не хочет читать русские символы из консоли :( выводятся нормально, а считывает введенные не правильно ! setlocale(LC_ALL,...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
04.12.2015, 13:21
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru