С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/47: Рейтинг темы: голосов - 47, средняя оценка - 4.81
8 / 8 / 10
Регистрация: 16.10.2012
Сообщений: 523
1

Конвертер из UTF8 - cp1251 и наоборот

04.10.2015, 15:47. Показов 9288. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток. Я понимаю, что данная тема уже поднималась на форуме, но я нашел код на c# который конвертит cp1251-utf8:
C#
1
2
3
4
5
6
7
8
9
10
11
12
private string Win1251ToUTF8(string source)
{
 
Encoding utf8 = Encoding.GetEncoding("utf-8");
Encoding win1251 = Encoding.GetEncoding("windows-1251");
 
byte[] utf8Bytes = win1251.GetBytes(source);
byte[] win1251Bytes = Encoding.Convert(win1251, utf8, utf8Bytes);
source = win1251.GetString(win1251Bytes);
return source;
 
}
и в другую сторону
C#
1
2
3
4
5
6
7
8
9
10
// Конвертирует строку из UTF-8 в Windows-1251
internal static string UTF8ToWin1251(string sourceStr)
{
Encoding utf8 = Encoding.UTF8;
Encoding win1251 = Encoding.GetEncoding("Windows-1251");
 
byte[] utf8Bytes = utf8.GetBytes(sourceStr);
byte[] win1251Bytes = Encoding.Convert(utf8, win1251, utf8Bytes);
return win1251.GetString(win1251Bytes);
}
Попытка перевести в С++ выдало следующее:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <string>
#include <vector>
#include <memory>
 
private:
std::wstring Win1251ToUTF8(const std::wstring &source)
{
 
std::shared_ptr<Encoding> utf8 = Encoding::GetEncoding(L"utf-8");
std::shared_ptr<Encoding> win1251 = Encoding::GetEncoding(L"windows-1251");
 
std::vector<unsigned char> utf8Bytes = win1251->GetBytes(source);
std::vector<unsigned char> win1251Bytes = Encoding::Convert(win1251, utf8, utf8Bytes);
source = win1251->GetString(win1251Bytes);
return source;
 
}
Однако ошибки зачастую в "Encoding", которого в чистом виде нету в С++, может есть знающие люди, как именно данный код можно поправить?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.10.2015, 15:47
Ответы с готовыми решениями:

Написать программу конвертер текстовых файлов с одной кодировки в другую из файла (CP1251, UTF8, KOIR8)
Написать программу конвертер текстовых файлов с одной кодировки в другую из файла (текст кириллица....

Перекодировка строки из UTF8 в cp1251
Доброго времени суток. Почему не получается из UTF8 преобразовать в cp1251? std::string...

Перекодировка строки из cp1251 в UTF8
Доброго времени суток. У меня есть строка в cp1251, но мне нужно вывести в utf8. Как это лучше...

Текст в кодировке cp1251 перевести в utf8 и обратно?
Здорова! Вот есть код: #include &lt;iostream&gt; using std::cout; using std::endl; using std::cerr;...

3
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
04.10.2015, 15:51 2
Цитата Сообщение от Darkvoid Посмотреть сообщение
я нашел код на c# который конвертит cp1251-utf8:
Цитата Сообщение от Darkvoid Посмотреть сообщение
Попытка перевести в С++ выдало следующее:
Может вместо того, чтобы искать код на C# и пытаться перевести на C++ - сразу искать код на C++?
0
Evg
Эксперт CАвтор FAQ
21280 / 8304 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
04.10.2015, 16:06 3
Чем сконвертировать в русский язык такие крякозябры?
И немного пояснений:
Работа с кодировками файла (АНСИ и ЮТФ-8)
0
Эксперт С++
8972 / 4318 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
04.10.2015, 16:24 4
Utf-8 строка в std::string
0
04.10.2015, 16:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.10.2015, 16:24
Помогаю со студенческими работами здесь

из utf8 в cp1251
Всем привет ! Собственно сразу вопрос - как троку перекодировать из utf8 в cp1251 и обратно ? ...

Перевод из cp1251 в utf8
Как перевести программно на C# это: %CA%D0%C8% в читабельный текст?

преобразования utf8 <-> cp1251
Какими функциями лучше всего воспользоваться для преобразований utf8 в cp1251 и обратно ?

Перекодировка строки cp1251 в utf8
Здравствуйте! Помогите советом, плз. Нужно получить заголовок страницы, и, если кодировка страницы...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru