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

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

Войти
Регистрация
Восстановить пароль
 
_Pupkin_
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 1
#1

Чтение из памяти и преобразование UTF-8 в ansi - C++

25.04.2016, 01:18. Просмотров 183. Ответов 2
Метки нет (Все метки)

День добрый подскажите как написать правильно.
Считываю из приложения допустим
char ник[32];
D0 A7 D0 B8 D0 BD D0 B3 D0 B8 D1 81 D1 85 D0 B0 D0 BD
(Чингисхан)

затем использую преобразование
C++
1
2
3
4
5
6
7
8
9
10
int length = MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)ник, -1, NULL, 0);
        if (length > 0)
        {
            wchar_t* wide = new wchar_t[length];
            MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)ник, -1, wide, length);
            size_t convertedChars = 0;
            char* вывод_анси = new char[length];
            wcstombs_s(&convertedChars, вывод_анси, length, wide, _TRUNCATE);
            std::cout << "вывод_анси = " << вывод_анси << std::endl;
        }
всё выводится правильно.
Но если используются нестандартные символы, как пример
53 61 66 79 79 79 20 20 E3 83 84 00 40 36 C8 12
(Safyyy гѓ)
то вывод_анси ничего не выдаёт.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2016, 01:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Чтение из памяти и преобразование UTF-8 в ansi (C++):

Обработка .txt кодировка ANSI и UTF-8 (буква "я" в ANSI воспринимается как EOF) - C++
Есть следующий кусок кода: FILE* fp = fopen(&quot;G:\OPND1.txt&quot;, &quot;r&quot;); if (fp!=NULL) // если файл удалось открыть { while((ch =...

Перевод из кодировки UTF - 8 в ANSI - C++
Всем привет! Пишу прогу на линухе, результаты работы вывожу в html файл. Так вот когда открываю файл для прочтения с помощью браузера там...

Unicode, UTF-8 и ANSI в одном консольном приложении. Можно ли "на лету" конвертировать массив строк? - C++
Всем доброго дня) Подскажите такую весчь: можно ли в консольном приложении работать с несколькими кодировками? Нужно считать файлик в...

Ansi c, запись и чтение структуры из файла. Накосячил от души - C++
Прошу прощения за глупую тему, но я мучаюсь уже долго, сам не могу решить проблему. структура struct rent { char...

Char *(UTF-8) -> char *(ANSI) - C++
Есть строка в кодировке UTF-8(если не ошибаюсь) типа char * Вот так ее я вижу в MSVC++10 - комментарии(оригинал - комментарии)...

Текстовый файл UTF-8 сохранить как текстовый файл ANSI - C++
Есть текстовый файл в UTF-8 Нужно рядом сохранить его же, но в ANSI Как сделать это средствами c++? Среда Visual Studio 2010 ...

2
zer0mail
2354 / 1984 / 198
Регистрация: 03.07.2012
Сообщений: 7,117
Записей в блоге: 1
25.04.2016, 07:36 #2
Потому, что эти нестандартные символы не UTF-8, а непонятно что.
0
k1n3c7
10 / 10 / 14
Регистрация: 06.03.2016
Сообщений: 53
25.04.2016, 10:01 #3
Что это за хекс символы? Какая кодировка? Это явно не ASCII, в ней символы от 0x20 до 0x7F.
На сколько я понял ты пытался использовать кодировку своего окружения, а когда подставил символы не из неё, у тебя вышли каракули.

Используй
C++
1
cout.imbue(locale("rus_rus.1251"));
Только вместо 1251 подставь свою кодировку. И это при условии, что твой компилятор поддерживает генерацию локалей из строки.

А ещё делать имена переменных кириллицей — плохой тон.

Добавлено через 6 минут
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.04.2016, 10:01
Привет! Вот еще темы с ответами:

Чтение файла в кодировке utf-8 и вывод в консоль - C++
Здорова! Пытаюсь прочитать файл в кодировке utf-8 (вот он ) и вывожу его в консоль, ничего не получается. Вот код: #include...

Конвертация из ASCII в UTF-32 или UTF-8 в UTF-32 - C++
Собсно сабж.

Чтение файла (с кракозябрами) с однобайтовой кодировкой, конвертация в UTF-8 и вывод в другой файл - C++
Добрый день, форумчане. Может у кого есть заготовка или кто поделится советом, необходимо прочитать файл (с кракозябрами) с однобайтовой...

чтение из памяти - C++
господа допустим есть - int a=5; мне нужно получить адрес переменной &quot;а&quot; и из адреса получить значение т.е. - 5 . Как возможно это...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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