Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
ninja2
969 / 188 / 32
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
1

Чтение файла в кодировке utf-8 и вывод в консоль

29.11.2014, 14:02. Просмотров 2421. Ответов 4
Метки нет (Все метки)

Здорова!
Пытаюсь прочитать файл в кодировке utf-8 (вот он 0.7z) и вывожу его в консоль, ничего не получается.
Вот код:
Кликните здесь для просмотра всего текста

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
#include <iostream>
#include <fstream>
#include <string>
using namespace::std;
 
int main()
{
    //читаем файл
    string s_result="";
    ifstream ifs("0.html",ifstream::in);
    if(!ifs){cerr <<"don't open file"<<endl; exit(1);}
    else
    {
        string str;
        while(getline(ifs,str))
            s_result+="\n"+str;
    }
 
    //выводятся крякозябры
    cout <<"s_result= "<<s_result<<endl;
 
    //переводим в wstring
    wstring ws_result(s_result.begin(),s_result.end());
 
    //выводит не полностью всю строку а 274 символа, 
    //остальные хз. почему не выводятся
    wcout <<L"ws_result= "<<ws_result<<endl;
 
    return 0;
}

выводится черт знает что, крякозябры выводятся, я уже и setlocale менял и заходил с cmd.exe из него запускал файл и там же менял кодировку на utf-8, cp1251 и 866 но все рамно крякозябры выводятся. Плюс пытаюсь перевести в широкие строки и вывести так оно выводит из 2300 символов (там мб. и больше) всего навсего 274 символов. В чем проблема хз!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2014, 14:02
Ответы с готовыми решениями:

Создание файла в UTF-8 кодировке
Здравствуйте! Как сделать что бы в данной ситуации файл создавался в utf-8 ...

Не могу разобраться. Чтение и вывод на экран всего содержимого файла .txt на консоль
#include &lt;cstdio&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;fstream&gt;...

Записать в блокнот в кодировке UTF-8
Здравствуйте, как записывать и считывать строки в кодировке UTF-8 ?

Форматный вывод из файла в программе тестирования в неверной кодировке
Нужна Ваша помощь. Есть файл(test), имеющий структуру Нужно сделать так,...

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

4
zer0mail
2452 / 2089 / 216
Регистрация: 03.07.2012
Сообщений: 7,571
Записей в блоге: 1
29.11.2014, 19:22 2
Как-то так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
char cb[1000];
wchar_t wcb[500];
setlocale(LC_ALL,"Russian"); //Переход к работе с кириллицей
ifstream ifs("B:\\0.html",ifstream::in);
if(!ifs){cerr <<"don't open file"<<endl; exit(1);}
else
{
    while(ifs.getline(cb,1000)) {
    MultiByteToWideChar(CP_UTF8, 0, cb, 1000, wcb, 500);    
    wcout<<wcb<<endl;
    }
}
1
nmcf
6274 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
29.11.2014, 19:39 3
C++
1
2
3
4
std::locale::global(std::locale(""));
std::locale l_utf8 (std::locale(), new std::codecvt_utf8<wchar_t, 0x10ffffUL, std::codecvt_mode::consume_header>);
std::wifstream wifs(L"d:\\data.txt");
wifs.imbue(l_utf8);
После этого выводить через wcout.
2
ninja2
969 / 188 / 32
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
29.11.2014, 23:57  [ТС] 4
nmcf, Та я уже сделал, там нужно перевести из string utf8 в wstring utf8, перекодировать нужно было, а не просто копировать.
0
nmcf
6274 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
30.11.2014, 07:46 5
Приведённый фрагмент делает то, о чём ты написал: работает с файлом utf-8, считываться будет уже utf-16 в wstring или в массив wchar_t - это по желанию.
0
30.11.2014, 07:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2014, 07:46

Чтение текста из текстового фала, обработка слов и вывод в консоль
Задача программы: считать текст из текстового файла; выделить слова с...

Как записать файл в кодировке utf-8?
Вообщет задача такая, нужно файл записать в кодировке utf-8 или unicode и нужно...

Реализовать поиск файла в каталоге и вывод на консоль заданных атрибутов найденного файла
Приведите, пожалуйста, пример кода программы, которая ищет файлы, находящиеся в...


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

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

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