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

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

Войти
Регистрация
Восстановить пароль
 
kirsanv43
16 / 3 / 1
Регистрация: 05.11.2013
Сообщений: 49
#1

Русские символы в массиве char - C++

05.11.2013, 01:25. Просмотров 578. Ответов 12
Метки нет (Все метки)

имеется функция возвращающая массив байтов(символов), если данная строка английское слово то все нормально, иначе получается это:С„1Рё2СЃ3РІ4

Как привести русские символы к нормальному представлению?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2013, 01:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Русские символы в массиве char (C++):

UTF-8 - русские символы в char посимвольно - C++
Здравствуйте, в проекте используется UTF-8, и в char и в string я не могу обратиться к русскому символу, как к элементу массива, т.к. в...

Широкие символы wchar_t wstring не хотят принимать русские символы - C++
Собственно вопрос в шапке, вот примеры: std::wstring str = L"блин комом"; и такое: wchar_t stroka = L"abcdefghijklmnopqrstuvwxyz...

Русские буквы в c++ char - C++
Здравствуйте, уже все облазил так ничего не нашел и не понял, нужно понять одну простую вещь, необходимо ввести с клавиатуры русское слово...

Русские символы!!!! - C++
Для русских символов я использую библиотеку #include <russian.h> Все работает нормально без using namespace std; #include...

Русские символы - C++
Подскажите пожалуйста как сделать правильный вывод русского алфавита, так как при выводе выдает иероглифы, есть задавать данные изначально,...

Русские символы - C++
Написал программу. Компилю из под cygwin g++. Ругается: 4.cpp:27:18: предупреждение: многознаковая символьная константа if((str...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Trademaster
3 / 3 / 0
Регистрация: 08.10.2013
Сообщений: 21
05.11.2013, 01:36 #2
Поменять кодировку ,не помню как это точно делается ,погуглите ,там на самом деле все одной строкой обойдётся.
kirsanv43
16 / 3 / 1
Регистрация: 05.11.2013
Сообщений: 49
05.11.2013, 01:51  [ТС] #3
OemToAnsi - но это не помогает, выдает ____________
AnsiToOem,CharToOem - тоже ни какого результата.
Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
05.11.2013, 01:55 #4
Русские шрифты в консоли
kirsanv43
16 / 3 / 1
Регистрация: 05.11.2013
Сообщений: 49
05.11.2013, 01:56  [ТС] #5
Данные я эти получаю посредством вызова CryptUnprotectData
Trademaster
3 / 3 / 0
Регистрация: 08.10.2013
Сообщений: 21
05.11.2013, 01:57 #6
Русские шрифты в консоли
Вот тут обсуждалось
Ukrainis
2 / 2 / 0
Регистрация: 26.10.2013
Сообщений: 42
05.11.2013, 02:05 #7
C++
1
2
3
int main()
{
    setlocale(LC_ALL, "rus");
Третья сверху строчка, и у меня такой проблемы больше нету.
kirsanv43
16 / 3 / 1
Регистрация: 05.11.2013
Сообщений: 49
05.11.2013, 02:18  [ТС] #8
Как включать русские символы в консоле я знаю, мне нужно не выводить, а записать в файл, но выводить тоже пробовал, результат нулевой.
Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
05.11.2013, 02:32 #9
используйте :
C++
1
2
3
4
#include <windows.h>
 
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
и в консоли поменяйте шрифт на Lucida
ValeryS
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
05.11.2013, 02:34 #10
Цитата Сообщение от kirsanv43 Посмотреть сообщение
имеется функция возвращающая массив байтов(символов), если данная строка английское слово то все нормально, иначе получается это:С„1Рё2СЃ3РІ4
Как привести русские символы к нормальному представлению?
А кодировка то у тебя какая?
kirsanv43
16 / 3 / 1
Регистрация: 05.11.2013
Сообщений: 49
05.11.2013, 02:56  [ТС] #11
ValeryS, кодировка стандартная, функция не самописная, а http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx .
только что попробовал данную последовательность байтов перевести в строку в Unicod кодировке на C#, все корректно.
kirsanv43
16 / 3 / 1
Регистрация: 05.11.2013
Сообщений: 49
08.11.2013, 19:13  [ТС] #12
Решение нашлось :
MultiByteToWideChar(
CP_UTF8
.......
);
Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
08.11.2013, 20:51 #13
Цитата Сообщение от kirsanv43 Посмотреть сообщение
Решение нашлось :
решение было в ответах, но другое
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.11.2013, 20:51
Привет! Вот еще темы с ответами:

Пропадают русские символи при конвертации из wchar_t to char - C++
string WcharToChar( const wstring&amp; str){ char * res = (char*)malloc(str.length()); ZeroMemory(res,str.length()); res = L'\0'; ...

Прочитать русские буквы в массив char с помощью cin - C++
Какую нужно добавить библиотеку, или еще что-то? просто setlocale(LC_ALL, &quot;Russian&quot;); не помогает.

Русские символы и substr - C++
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int main() { setlocale( LC_ALL,&quot;Russian&quot; ); string sTmp; ...

Не подсчитывает русские символы - C++
Не пойму в чём загвостка; логически вроде всё верно: #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;cstdlib&gt; #include &lt;stdexcept&gt;...


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

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

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