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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Vasilijs
0 / 0 / 1
Регистрация: 20.10.2014
Сообщений: 17
#1

Перекодировать текст с UTF-8 в ASCII - C++

18.11.2014, 21:46. Просмотров 1776. Ответов 17
Метки нет (Все метки)

Даже не знаю с чего начать
Задача такова:
Есть файл в формате UTF8. Нужно его перекодировать в ASCII и сохранить.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
true_bugmaker
28 / 5 / 1
Регистрация: 18.11.2014
Сообщений: 68
18.11.2014, 22:04     Перекодировать текст с UTF-8 в ASCII #2
man -a iconv
igorrr37
1644 / 1272 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
18.11.2014, 22:10     Перекодировать текст с UTF-8 в ASCII #3
http://msdn.microsoft.com/en-us/library/dd374130.aspx
nmcf
5276 / 4596 / 1541
Регистрация: 14.04.2014
Сообщений: 18,265
18.11.2014, 22:19     Перекодировать текст с UTF-8 в ASCII #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <codecvt>
#include <windows.h>
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <locale>
 
using std::cout;
using std::cin;
using std::endl;
 
int main()
{
    std::locale::global(std::locale(""));
    std::locale loc (std::locale(), new std::codecvt_utf8<wchar_t, 0x10ffffUL, std::codecvt_mode::consume_header>);
    std::wifstream wifs(L"d:\\data.txt");
    wifs.imbue(loc);
 
    std::ofstream ofs("d:\\data1.txt");
    wchar_t s[100];
    char d[100];
 
    while(!wifs.eof())
    {
        wifs.getline(s, 100);
        std::wcstombs(d, s, 100);
        ofs << d << endl;
    }
 
    return 0;
}
Vasilijs
0 / 0 / 1
Регистрация: 20.10.2014
Сообщений: 17
18.11.2014, 23:14  [ТС]     Перекодировать текст с UTF-8 в ASCII #5
а можно этот код разбить на разные функции?
nmcf
5276 / 4596 / 1541
Регистрация: 14.04.2014
Сообщений: 18,265
18.11.2014, 23:20     Перекодировать текст с UTF-8 в ASCII #6
Ну разбивай. Это же пример.
Vasilijs
0 / 0 / 1
Регистрация: 20.10.2014
Сообщений: 17
20.11.2014, 13:48  [ТС]     Перекодировать текст с UTF-8 в ASCII #7
что то не получается его откомпилировать. Много ошибок.
TheFox
131 / 67 / 10
Регистрация: 13.05.2013
Сообщений: 438
20.11.2014, 14:15     Перекодировать текст с UTF-8 в ASCII #8
Vasilijs, у меня пример собирается.
nmcf
5276 / 4596 / 1541
Регистрация: 14.04.2014
Сообщений: 18,265
20.11.2014, 14:24     Перекодировать текст с UTF-8 в ASCII #9
Что за ошибки? В какой среде работаешь?
true_bugmaker
28 / 5 / 1
Регистрация: 18.11.2014
Сообщений: 68
20.11.2014, 17:08     Перекодировать текст с UTF-8 в ASCII #10
У меня тоже не собирается
Код
victor@scorpion:~/devel/tmp$ gcc test.cpp -lstdc++ && ./a.out
test.cpp:1:19: фатальная ошибка: codecvt: Нет такого файла или каталога
компиляция прервана.
victor@scorpion:~/devel/tmp$
В каком он пакете интересно, этот codecvt?
nmcf
5276 / 4596 / 1541
Регистрация: 14.04.2014
Сообщений: 18,265
20.11.2014, 17:09     Перекодировать текст с UTF-8 в ASCII #11
Это linux? Тогда работать не будет, там какие-то проблемы с codecvt.
Vasilijs
0 / 0 / 1
Регистрация: 20.10.2014
Сообщений: 17
20.11.2014, 17:11  [ТС]     Перекодировать текст с UTF-8 в ASCII #12
я работаю в C++ Builder'e 6
nmcf
5276 / 4596 / 1541
Регистрация: 14.04.2014
Сообщений: 18,265
20.11.2014, 17:16     Перекодировать текст с UTF-8 в ASCII #13
В древнем Builder тоже не будет. Нужна поддержка C++11.
Используй тогда функции Windows для перекодирования.
nmcf
5276 / 4596 / 1541
Регистрация: 14.04.2014
Сообщений: 18,265
20.11.2014, 18:29     Перекодировать текст с UTF-8 в ASCII #14
Цитата Сообщение от DrOffset Посмотреть сообщение
Нет там проблем
Поподробнее с этого места. Вчера пробовал в Linux Debian, IDE Anjuta. Не понимает он #include <codecvt>. Что и где нужно настроить?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2014, 18:37     Перекодировать текст с UTF-8 в ASCII
Еще ссылки по теме:
Зашифровать текст, используя таблицу ASCII-кодов C++
C++ Какой самый универсальный способ считать UTF-8 текст на кириллице из файла?
Дешифровать заданный текст, используя таблицу ASCII-кодов C++
Преобразовние Utf-16 <=> Utf-8 C++
C++ Перекодировать из Паскаля в с++

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

Или воспользуйтесь поиском по форуму:
DrOffset
7060 / 4201 / 949
Регистрация: 30.01.2014
Сообщений: 6,968
20.11.2014, 18:37     Перекодировать текст с UTF-8 в ASCII #15
Цитата Сообщение от nmcf Посмотреть сообщение
Поподробнее с этого места.
Проблемы были, ты прав.
Но у меня стоит gcc 4.10 (сборка из репозитория), и я это не учел при написании ответа. Извиняюсь.
Yandex
Объявления
20.11.2014, 18:37     Перекодировать текст с UTF-8 в ASCII
Ответ Создать тему
Опции темы

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