Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
_Pupkin_
0 / 0 / 1
Регистрация: 25.04.2016
Сообщений: 1
#1

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

25.04.2016, 01:18. Просмотров 206. Ответов 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 гѓ)
то вывод_анси ничего не выдаёт.
http://www.cyberforum.ru/cpp-beginners/thread330396.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2016, 01:18
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Чтение из памяти и преобразование UTF-8 в ansi (C++):

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

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

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

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

Текстовый файл UTF-8 сохранить как текстовый файл ANSI
Есть текстовый файл в UTF-8 Нужно рядом сохранить его же, но в ANSI Как...

2
zer0mail
2451 / 2085 / 216
Регистрация: 03.07.2012
Сообщений: 7,566
Записей в блоге: 1
25.04.2016, 07:36 #2
Потому, что эти нестандартные символы не UTF-8, а непонятно что.
0
k1n3c7
11 / 11 / 24
Регистрация: 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 и вывод в консоль
Здорова! Пытаюсь прочитать файл в кодировке utf-8 (вот он ) и вывожу его в...

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

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

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


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

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

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