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

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

Восстановить пароль Регистрация
 
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
02.03.2014, 08:39     Можно ли читать UTF8 в std::wstring потоком? #1
Интересует загрузка файла целиком.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2014, 08:39     Можно ли читать UTF8 в std::wstring потоком?
Посмотрите здесь:

Считать с потока строку в std::wstring C++
std::string -> std::wstring C++
Загрузка UTF-8 без BOM в std::wstring C++
C++ Как вывести std::wstring в поток?
C++ Как правильно перевести std::wstring в std::string ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zer0mail
2178 / 1861 / 187
Регистрация: 03.07.2012
Сообщений: 6,624
Записей в блоге: 1
02.03.2014, 09:23     Можно ли читать UTF8 в std::wstring потоком? #2
Где пример кода?
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
02.03.2014, 10:32  [ТС]     Можно ли читать UTF8 в std::wstring потоком? #3
Я спрашиваю, можно ли это вообще сделать. Откуда у меня готовый пример?
Убежденный
Системный программист
 Аватар для Убежденный
14175 / 6190 / 982
Регистрация: 02.05.2013
Сообщений: 10,306
Завершенные тесты: 1
02.03.2014, 11:21     Можно ли читать UTF8 в std::wstring потоком? #4
Можно, только не wstring, а string.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
02.03.2014, 11:23  [ТС]     Можно ли читать UTF8 в std::wstring потоком? #5
Но я хочу в wstring.
Убежденный
Системный программист
 Аватар для Убежденный
14175 / 6190 / 982
Регистрация: 02.05.2013
Сообщений: 10,306
Завершенные тесты: 1
02.03.2014, 11:30     Можно ли читать UTF8 в std::wstring потоком? #6
А чему равен sizeof (wchar_t) на вашей платформе ?

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

Цитата Сообщение от Убежденный Посмотреть сообщение
А размер знака в UTF-8 варьируется от одного до шести байт.
Двух байт уже не хватает? Использование 2 байт для unicode, вроде как стандарт де-факто.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.03.2014, 12:28     Можно ли читать UTF8 в std::wstring потоком?
Еще ссылки по теме:

Можно потоком читать файл, если он может с любым переводом строки? C++
C++ Как привести std::wstring к std::string?
C++ Std::string and std::wstring convert

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

Или воспользуйтесь поиском по форуму:
Убежденный
Системный программист
 Аватар для Убежденный
14175 / 6190 / 982
Регистрация: 02.05.2013
Сообщений: 10,306
Завершенные тесты: 1
02.03.2014, 12:28     Можно ли читать UTF8 в std::wstring потоком? #9
Цитата Сообщение от tarasproger Посмотреть сообщение
Поэтому надо преобразовать одно в другое. Потоки это инкапсулируют? Или надо преобразование делать отдельно?
Надо делать отдельно.

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

Цитата Сообщение от Dmitriy_M Посмотреть сообщение
Двух байт уже не хватает? Использование 2 байт для unicode, вроде как стандарт де-факто.
Понятия "Unicode" и "к-во байт на символ" между собой никак не связаны.
Yandex
Объявления
02.03.2014, 12:28     Можно ли читать UTF8 в std::wstring потоком?
Ответ Создать тему
Опции темы

Текущее время: 11:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru