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

Локализация, русский текст выводит иероглифы - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 36, средняя оценка - 4.97
vpnwz151
 Аватар для vpnwz151
10 / 11 / 1
Регистрация: 03.11.2011
Сообщений: 129
10.06.2012, 01:48     Локализация, русский текст выводит иероглифы #1
Не могу понять почему когда ввожу русский текст выводит иероглифы
А тот что в программе нормально показывает

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <locale.h>
using namespace std;
 
int main()
{   
    setlocale( LC_ALL, "Russian");
    cout<<"Введите текст: ";
    char num [80];
    cin.getline(num,80);
    cout<<"То что ввели: ";
    cout<<num;
    cin.get();
 
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dima koz
 Аватар для dima koz
23 / 17 / 1
Регистрация: 05.06.2012
Сообщений: 72
Записей в блоге: 5
10.06.2012, 02:41     Локализация, русский текст выводит иероглифы #2
std::setlocale(LC_CTYPE,"Russian");

так попробуй
vpnwz151
 Аватар для vpnwz151
10 / 11 / 1
Регистрация: 03.11.2011
Сообщений: 129
10.06.2012, 02:54  [ТС]     Локализация, русский текст выводит иероглифы #3
Не помогло,
Когда
C++
1
setlocale(LC_CTYPE,"utf8");
Текст который я вожу кириллицей выводит нормально а вот тот что в коде иероглифами
Какие есть варианты еще?
novi4ok
549 / 502 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
10.06.2012, 03:07     Локализация, русский текст выводит иероглифы #4
какая visual studio? или вообще среда разработки?
vpnwz151
 Аватар для vpnwz151
10 / 11 / 1
Регистрация: 03.11.2011
Сообщений: 129
10.06.2012, 03:35  [ТС]     Локализация, русский текст выводит иероглифы #5
visual studio 2010
defer
秘密
 Аватар для defer
555 / 235 / 3
Регистрация: 29.11.2010
Сообщений: 783
10.06.2012, 03:40     Локализация, русский текст выводит иероглифы #6
так можно

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <windows.h>
using namespace std;
 
inline const char* OEM(const char *chars)
{
    static char buf[256];
    CharToOem((LPSTR)chars,buf);
    return buf;
}
 
int main()
{
    cout<<OEM("Введите текст: ");
    char num [80];
    cin.getline(num,80);
    cout<<OEM("То что ввели: ");
    cout<<num;
    cin.get();
    return 0;
}
vpnwz151
 Аватар для vpnwz151
10 / 11 / 1
Регистрация: 03.11.2011
Сообщений: 129
10.06.2012, 03:47  [ТС]     Локализация, русский текст выводит иероглифы #7
IntelliSense: argument of type "LPSTR" is incompatible with parameter of type "LPCWSTR"
Error 1 error C2664: 'CharToOemW' : cannot convert parameter 1 from 'LPSTR' to 'LPCWSTR'
вот что пишет
defer
秘密
 Аватар для defer
555 / 235 / 3
Регистрация: 29.11.2010
Сообщений: 783
10.06.2012, 03:55     Локализация, русский текст выводит иероглифы #8
в настройках проекта включите использовать многобайтную кодировку
vpnwz151
 Аватар для vpnwz151
10 / 11 / 1
Регистрация: 03.11.2011
Сообщений: 129
10.06.2012, 04:24  [ТС]     Локализация, русский текст выводит иероглифы #9
Немного пошаманил сделал по своему
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <windows.h>
using namespace std;
 
int main()
{ 
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    char num [80];
 
    cout<<"Введите текст: ";
    cin.getline(num,80);
 
    cout<<"Ваш текст: ";
    cout<<num;
 
    cin.get();
return 0;
}
Работает Украинский, Русский
Dragokas
Автор FAQ
 Аватар для Dragokas
14527 / 6354 / 785
Регистрация: 25.12.2011
Сообщений: 9,893
Записей в блоге: 14
17.06.2012, 23:06     Локализация, русский текст выводит иероглифы #10
vpnwz151, не хватает еще чего-то. У меня все на крякозябрах, в т.ч. приглашение и входящий поток (у меня MS VS 2010 Express).

Вот такой пример мне понравится краткостью:
C
1
system("chcp 1251");
1. Но в каком из окон менять шрифт на Lucidia (скрин) ?
2. Что дописать, чтобы не отображалось "Кодовая страница изменена на ..." ?
Миниатюры
Локализация,  русский текст выводит иероглифы  
dima koz
 Аватар для dima koz
23 / 17 / 1
Регистрация: 05.06.2012
Сообщений: 72
Записей в блоге: 5
17.06.2012, 23:19     Локализация, русский текст выводит иероглифы #11
есть такая тема на форуме, может там посмотреть?

Русские шрифты в консоли
Dragokas
Автор FAQ
 Аватар для Dragokas
14527 / 6354 / 785
Регистрация: 25.12.2011
Сообщений: 9,893
Записей в блоге: 14
17.06.2012, 23:42     Локализация, русский текст выводит иероглифы #12
dima koz, я в курсе прочитал ее всю. Ответа в точности на мои вопросы там не было.
dima koz
 Аватар для dima koz
23 / 17 / 1
Регистрация: 05.06.2012
Сообщений: 72
Записей в блоге: 5
18.06.2012, 00:05     Локализация, русский текст выводит иероглифы #13
Цитата Сообщение от Diskretor Посмотреть сообщение
Вот такой пример мне понравится краткостью:
C
1
system("chcp 1251");
2. Что дописать, чтобы не отображалось "Кодовая страница изменена на ..." ?
вывод сообщений можно перенаправлять, примерно, так :
C++
1
system("chcp 1251>>null");
но системные команды использовать - не есть правильно
Dragokas
Автор FAQ
 Аватар для Dragokas
14527 / 6354 / 785
Регистрация: 25.12.2011
Сообщений: 9,893
Записей в блоге: 14
18.06.2012, 03:19     Локализация, русский текст выводит иероглифы #14
Разобрался. Банально правый клик по заголовку запущенного ехе-шника, свойства, шрифт.
Но как сделать, чтобы при закрытии/открытии проекта эта настройка не сбрасывалась?

Цитата Сообщение от dima koz Посмотреть сообщение
системные команды использовать - не есть правильно
применительно к каким ситуациям?
nesquick
0 / 0 / 0
Регистрация: 09.04.2012
Сообщений: 25
18.06.2012, 03:22     Локализация, русский текст выводит иероглифы #15
setlocale(0,"Rus"); у меня так все работает
Dragokas
Автор FAQ
 Аватар для Dragokas
14527 / 6354 / 785
Регистрация: 25.12.2011
Сообщений: 9,893
Записей в блоге: 14
18.06.2012, 04:39     Локализация, русский текст выводит иероглифы #16
Спасибо, nesquick. У меня тоже так прекрасно работает все, кроме момента с ТС (вывод на экран входящего потока, устройство: клава ).

Меня интересовал ответ конкретно на МОЙ вопрос.

Добавлено через 1 час 2 минуты
Нашел. Нужно было заходить не в шрифт, а в "Умолчания".
Кроме того, после изменений шрифта в этом меню, шрифт в обычной консоли cmd не изменится, что есть удобно.
mikityak
 Аватар для mikityak
617 / 22 / 3
Регистрация: 30.09.2007
Сообщений: 357
10.04.2013, 02:22     Локализация, русский текст выводит иероглифы #17
MessageBox(NULL, (LPCWSTR)"Привет",(LPCWSTR)"PRODIGY",MB_OK); IDE Visual Studio 2010 (RUS)
Изображения
 
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2013, 03:40     Локализация, русский текст выводит иероглифы
Еще ссылки по теме:

C++ Русский текст в консоли
C++ MessageBox выводит иероглифы место текста с++
C++ Написать программу, которая считывает текст из файла и выводит на экран количество гласных букв в строке текст

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

Или воспользуйтесь поиском по форуму:
UnsKneD
алкокодер
 Аватар для UnsKneD
153 / 149 / 11
Регистрация: 27.12.2012
Сообщений: 548
10.04.2013, 03:40     Локализация, русский текст выводит иероглифы #18
vpnwz151, если win 7, нужно поставить какие то обновления, была такая же проблема, но особо не вникал каких обновлений не хватало.
Yandex
Объявления
10.04.2013, 03:40     Локализация, русский текст выводит иероглифы
Ответ Создать тему
Опции темы

Текущее время: 18:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru