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

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

Войти
Регистрация
Восстановить пароль
 
taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
#1

Можно ли читать UTF8 в std::wstring потоком? - C++

02.03.2014, 08:39. Просмотров 384. Ответов 8
Метки нет (Все метки)

Интересует загрузка файла целиком.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2014, 08:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Можно ли читать UTF8 в std::wstring потоком? (C++):

Можно потоком читать файл, если он может с любым переводом строки? - C++
На одной и той же машине перевод строки может быть виндузячим, никсоидным, или маковым. Можно читать его файловым текстовым потоком ввода?

Как правильно перевести std::wstring в std::string ? - C++
Собственно как? :)

Как привести std::wstring к std::string? - C++
Как привести std::wstring к std::string?

Std::string and std::wstring convert - C++
случайно наткнулся на такую вот конвертацию std::string в std::wstring std::string text("text"); ...

std::string -> std::wstring - C++
Как перевести данный код в код с использованием wstring ( посути использовать std::vector<std::wstring> refs; ) #include <vector> ...

Конвертация символов в std::wstring - C++
Привет. Помогите пожалуйста, как cконвертировать символы unicode, лежащие в std::wstring, в ANSI Codepage 1251? Добавлено через 1...

8
zer0mail
2343 / 1973 / 193
Регистрация: 03.07.2012
Сообщений: 7,091
Записей в блоге: 1
02.03.2014, 09:23 #2
Где пример кода?
0
taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
02.03.2014, 10:32  [ТС] #3
Я спрашиваю, можно ли это вообще сделать. Откуда у меня готовый пример?
0
Убежденный
Системный программист
Эксперт С++
15631 / 7140 / 1130
Регистрация: 02.05.2013
Сообщений: 11,581
Записей в блоге: 1
Завершенные тесты: 1
02.03.2014, 11:21 #4
Можно, только не wstring, а string.
0
taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
02.03.2014, 11:23  [ТС] #5
Но я хочу в wstring.
0
Убежденный
Системный программист
Эксперт С++
15631 / 7140 / 1130
Регистрация: 02.05.2013
Сообщений: 11,581
Записей в блоге: 1
Завершенные тесты: 1
02.03.2014, 11:30 #6
А чему равен sizeof (wchar_t) на вашей платформе ?

В Win32, например, будет 2 (байта).
А размер знака в UTF-8 варьируется от одного до шести байт.
Ну и каким образом держать их в wstring тогда ?
Лучше уже сразу конвертировать в какой-нибудь UTF-16, и вот
только после этого загонять в wstring.
0
taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
02.03.2014, 11:38  [ТС] #7
Цитата Сообщение от Убежденный Посмотреть сообщение
А размер знака в UTF-8 варьируется от одного до шести байт.
Поэтому надо преобразовать одно в другое. Потоки это инкапсулируют? Или надо преобразование делать отдельно?
0
Dmitriy_M
1356 / 1237 / 114
Регистрация: 20.03.2009
Сообщений: 4,429
Записей в блоге: 11
02.03.2014, 11:54 #8
Цитата Сообщение от Убежденный Посмотреть сообщение
А чему равен sizeof (wchar_t) на вашей платформе ?
В Win32, например, будет 2 (байта).
Размер wchar_t зависит исключительно от компилятора.

Цитата Сообщение от Убежденный Посмотреть сообщение
А размер знака в UTF-8 варьируется от одного до шести байт.
Двух байт уже не хватает? Использование 2 байт для unicode, вроде как стандарт де-факто.
0
Убежденный
Системный программист
Эксперт С++
15631 / 7140 / 1130
Регистрация: 02.05.2013
Сообщений: 11,581
Записей в блоге: 1
Завершенные тесты: 1
02.03.2014, 12:28 #9
Цитата Сообщение от tarasproger Посмотреть сообщение
Поэтому надо преобразовать одно в другое. Потоки это инкапсулируют? Или надо преобразование делать отдельно?
Надо делать отдельно.

Цитата Сообщение от Dmitriy_M Посмотреть сообщение
Размер wchar_t зависит исключительно от компилятора.
Ну я бы так не сказал. GCC на Windows показывает 2 байта, на linux - 4 байта.
Компилятор один и тот же.

Цитата Сообщение от Dmitriy_M Посмотреть сообщение
Двух байт уже не хватает? Использование 2 байт для unicode, вроде как стандарт де-факто.
Понятия "Unicode" и "к-во байт на символ" между собой никак не связаны.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.03.2014, 12:28
Привет! Вот еще темы с ответами:

Как вывести std::wstring в поток? - C++
Как вывести std::wstring в поток, если в строке есть кириллица?

Считать с потока строку в std::wstring - C++
Есть ли аналог std::string str; getline(cin,str); для std::wstring ???

Что из себя представляет std::wstring? - C++
В общем насколько я понимаю это string с типом wchar_t. Но есть вопросы: 1. Размер типа wchar_t зависит от компилятора и не...

Как узнать размер std::wstring в байтах? - C++
:) ну как бэ вопрос в шапке :)


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

Или воспользуйтесь поиском по форуму:
9
Yandex
Объявления
02.03.2014, 12:28
Ответ Создать тему
Опции темы

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