Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/21: Рейтинг темы: голосов - 21, средняя оценка - 5.00
12 / 12 / 4
Регистрация: 07.09.2012
Сообщений: 542

Перевод последовательности байтов в строку UTF-8

07.07.2017, 15:41. Показов 4502. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Получаю по сети строку в UTF-8 (то есть читаю из порта набор байт, содержащих сроку в формате UTF-8).
Как можно перевести этот набор байт в строку?
И наоборот для отправки, строку (std::wstring) в массив байт?
Как понял, whar_t не соответствует UTF-8 (так как размер в UTF-8 одного символа от 1-го до 4-ех байт, а whar_t имеет фиксированный размер).
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.07.2017, 15:41
Ответы с готовыми решениями:

Перевод UTF-16 последовательности бит в символ
Здравствуйте. Вопрос заключается в следующем. Есть следующий метод, который преобразует входную строку в массив байт (мне они необходимы...

Перевод зашифрованного текста из байтов в строку
Всем доброго времени суток. Столкнулся со следующей проблемой. Нужно зашифровать текстовое сообщение, потом перевести его из байт в строку,...

Чтение utf-8 байтов
Добрый ночи всем, столкнулся с тем, что при чтении utf-8 байтов он не хочет воспринимать русские символы нормально: def...

7
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,028
Записей в блоге: 1
07.07.2017, 15:58
Цитата Сообщение от klynxe Посмотреть сообщение
Как можно перевести этот набор байт в строку?
Это уже строка.
Цитата Сообщение от klynxe Посмотреть сообщение
И наоборот для отправки, строку (std::wstring) в массив байт?
wcstombs
1
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
07.07.2017, 15:59
Лучший ответ Сообщение было отмечено klynxe как решение

Решение

C++
1
2
3
std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
std::wstring wstr = converter.from_bytes(s);//s - std::string
std::string utf8s = converter.to_bytes(wstr);//utf-8
2
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,028
Записей в блоге: 1
07.07.2017, 16:11
Цитата Сообщение от nd2 Посмотреть сообщение
std::codecvt_utf8<wchar_t>
deprecated в c++17.
0
Эксперт С++
 Аватар для hoggy
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
07.07.2017, 17:44
Цитата Сообщение от Croessmah Посмотреть сообщение
deprecated в c++17.
alternative ?
0
Заблокирован
07.07.2017, 18:05
Цитата Сообщение от klynxe Посмотреть сообщение
whar_t имеет фиксированный размер
Ха-ха-ха-ха! Только не на винде. Там wchar_t используется для кодирования UTF-16 (самая идиотская кодировка из всех юникодных) и представляет один code unit, а code point в UTF-16 может кодироваться одним или двумя code unit-ами. Т.е. в Windows wchar_t это не fixed-length encoding, а variable-length encoding. Что, кстати, не удовлетворяет стандартам C и C++, которые явно требуют, чтобы ОДИН wchar_t кодировал все возможные поддерживаемые системой символы из расширенного набора символов.
0
Администратор
Эксперт .NET
 Аватар для tezaurismosis
9673 / 4825 / 763
Регистрация: 17.04.2012
Сообщений: 9,664
Записей в блоге: 14
08.07.2017, 07:37
Пока разработчики стандарта не придумали, чем заменить <codecvt>, думаю им можно пользоваться. Не городить же свои велосипеды
wstring_convert кстати тоже пометили как устаревший.
The contents of are underspecified, and will take a reasonable amount of work to identify and correct all of the issues. There appears to be a general feeling that this is not the best way to address unicode transcoding in the first place, and this library component should be retired to Annex D, along side, until a suitable replacement is standardized.
Review by the Library Working Group in Kona (2017) recommended that the wstring_convert and wbuffer_convert facilities from <locale> be deprecated at the same time.
http://www.open-std.org/jtc1/s... 618r0.html
0
Неэпический
 Аватар для Croessmah
18144 / 10728 / 2066
Регистрация: 27.09.2012
Сообщений: 27,028
Записей в блоге: 1
08.07.2017, 07:59
hoggy, как всегда - библиотека C или сторонние библиотеки. )))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.07.2017, 07:59
Помогаю со студенческими работами здесь

Дозапись байтов UTF-8 without BOM
Добрый день. Дозаписываю байты из массива следующим образом: Stream fs = new FileStream(&quot;C:\\AES\\Шифр-текст.txt&quot;,...

Перевод байтов в килобайты
Помогите сделать задание: Составьте программу, которая выводит на экран таблицу перевода a, a+1, a+2...b Кбайты в байты. Границы a и b...

Перевод байтов в килобайты
Здрасте, помогите пожалуйста написать программу в Visual Basic 2010 &quot; Дана величина А, выражающая объём информации в байтах. Перевести А в...

Перевод байтов в число
Добрый день! Написал небольшую программу для связи с прибором через сом порт. Прибор измеряет силу тока и передает данные через СОМ порт...

Перевод байтов в число
Добрый день! Написал небольшую программу для связи с прибором через сом порт. Прибор измеряет силу тока и передает данные через СОМ порт...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru