|
-23 / 4 / 0
Регистрация: 15.08.2014
Сообщений: 492
|
||||||
Как правильно преобразовать массив char в wstring ?07.09.2025, 17:13. Показов 3359. Ответов 51
Метки нет (Все метки)
Добрый вечер!
Мне необходимо преобразовать массив char в wstring. Нашел пример - см. далее. Вопрос1: Насколько он корректен ? Насколько я понял, std::codecvt_utf8 указывает, что исходный массив - в utf8, т.е. может быть более 1 байта на 1 символ. Мой исходный массив - точно 1 байт на символ. Соответственно, я буду использовать другой вариант - он далее. Вопрос2 по нему: есть ли вариант обойтись без промежуточной WTemp, чтобы записать результат сразу в wout ?
0
|
||||||
| 07.09.2025, 17:13 | |
|
Ответы с готовыми решениями:
51
Ошибка: "char *concat(char *,.)": невозможно преобразовать аргумент 1 из "const char [4]" в "char *" Объясните, что означает wstring input = L""; и wstring output = L""; ? Конвертация wstring в TCHAR* ( или wstring в FString(ue4) |
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||
| 08.09.2025, 22:19 | ||
|
Я уже об этом писал. Добавлено через 39 секунд Кажется что писал)
0
|
||
|
-23 / 4 / 0
Регистрация: 15.08.2014
Сообщений: 492
|
||
| 08.09.2025, 23:18 [ТС] | ||
|
Именно потому она и не переделывается в wstring, а используется упрощенный вариант - копирование в wstring или присоединение к wstring.
0
|
||
|
6279 / 3003 / 1051
Регистрация: 01.06.2021
Сообщений: 11,249
|
|||
| 08.09.2025, 23:21 | |||
|
LPCWSTR можно будет получить из wstring, просто вызвав c_str().
0
|
|||
|
358 / 120 / 8
Регистрация: 19.07.2024
Сообщений: 627
|
||
| 09.09.2025, 03:03 | ||
|
UTF-8 конечно универсальнее, но и сложнее, неудобнее.
0
|
||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 09.09.2025, 11:51 | |
|
jcxz, двухбайтовой строке, как ни крути, но тоже будет utf-16, с суррогатными парами.
В самом простом случае: wstring str = L"Какой то текст."; // юникодная строка будет преобразована в utf-16Со всеми вытекающими. То есть, при толковой работе с текстом на различных языках, двухбайтовые строки - такой же геморой как и однобайтовые. А для прикладных оконных приложений, вполне может хватит и utf8 строк, при этом не ограничивая себя нигде. Всё зависит только от конкретных задач и обстоятельств. О сферических конях можно до бесконечности слюни пускать.
0
|
|
|
358 / 120 / 8
Регистрация: 19.07.2024
Сообщений: 627
|
|
| 09.09.2025, 13:15 | |
|
0
|
|
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||||
| 09.09.2025, 13:45 | ||||
|
Детский сад. То есть, это подход: "А, и так сойдет.". Ну если так и сойдет, ну что ж, значит всё хорошо)
0
|
||||
|
358 / 120 / 8
Регистрация: 19.07.2024
Сообщений: 627
|
|||||
| 09.09.2025, 14:02 | |||||
|
0
|
|||||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 09.09.2025, 14:14 | |
|
0
|
|
|
358 / 120 / 8
Регистрация: 19.07.2024
Сообщений: 627
|
|||
| 09.09.2025, 14:16 | |||
|
Если в ТЗ не сказано ни про какие "загрузки файлов" куда-бы то ни было, ни про какие-либо "комплементарные пары", а нужно скажем: "Обеспечить интерактивный интерфейс с пользователем на нескольких (перечисленных) европейских языках" (иероглифы - не нужны). То почему в такой задаче не использовать исключительно 2-байтные символы UTF-16? Зачем тут полный набор UTF-8? Добавлено через 1 минуту
0
|
|||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|||
| 09.09.2025, 14:19 | |||
|
Но разговор то был не об этом. Разговор о сферических конях и почему utf16 - лучше utf8. Плюсы и минусы - очевидны. И я уже давно сказал что выбор ведется от задачи, а не просто какие то размышления вслух:
0
|
|||
|
6279 / 3003 / 1051
Регистрация: 01.06.2021
Сообщений: 11,249
|
|
| 09.09.2025, 15:25 | |
|
ТС был удовлетворен ответом SmallEvil, так что не вижу смысла в продолжении дискуссии. Честно говоря, наверное, дискуссия отклонилась в сторону из-за меня. Но я лишь хотел объяснить ТС, что раз ему нужна кириллица, это не означает, что string не подходит. Выше я по этому поводу уже дал разъяснение.
У каждой кодировки есть преимущества и недостатки. Самое главное, сделать так, чтобы потом приложение правильно отображало текст не только на винде с кириллической кодировкой, но и на "некириллических" системах.
0
|
|
|
Нарушитель
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,165
|
||
| 09.09.2025, 15:52 | ||
|
Надо грамотно работать на wchar_t, понимая процесс. Понимая что ты делаешь. А ещё лучше на char. Не знаю как где, а на msvs присутствует полный набор функций под широкие и узкие строки.
0
|
||
|
Нарушитель
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,165
|
|||||||||||
| 09.09.2025, 16:09 | |||||||||||
Вот преобразование в широкие символы. У себя нашёл.
0
|
|||||||||||
|
Нарушитель
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,165
|
|
| 09.09.2025, 16:10 | |
|
0
|
|
|
Нарушитель
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,165
|
|
| 09.09.2025, 16:19 | |
|
У мня в кодах всего хватает. Я только не всё помню...
Но если оно работает, то оно работает. Я это гуглил всё сам... Тогда ещё не было ИИ. Я там в коментах добавил примерно... А wchar_t to wstring это ------------ wstring target(wchar_t указатель.); Можно было конечно просто цифры покопировать, но.... мандавошек боюсь..
0
|
|
|
2736 / 891 / 331
Регистрация: 10.02.2018
Сообщений: 2,128
|
|
| 09.09.2025, 16:24 | |
|
Наталья8, проблема этих функций в том, что они завязаны на локаль (setlocale). Локаль - штука глобальная. Её изменение может вылезти боком в каком-нибудь другом месте. Например, при преобразовании float в строку точка может "вдруг" замениться на запятую.
1
|
|
|
Нарушитель
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,165
|
||
| 09.09.2025, 16:29 | ||
|
0
|
||
|
6279 / 3003 / 1051
Регистрация: 01.06.2021
Сообщений: 11,249
|
|
| 09.09.2025, 17:45 | |
|
Наталья8, чтобы работало на твоём компе достаточно слепить методом тыка из говна и палок. Нормальное приложение должно у других тоже работать.
0
|
|
|
358 / 120 / 8
Регистрация: 19.07.2024
Сообщений: 627
|
||
| 09.09.2025, 18:52 | ||
|
0
|
||
| 09.09.2025, 18:52 | |
|
преобразовать std::wstring в char [] Как переменной wstring присвоить значение char*?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
[golang] Worker Pool
alhaos 09.06.2026
Worker Pool
Worker Pool — паттерн конкурентной обработки задач в Go.
Суть: фиксированное количество горутин-воркеров читают задачи из общего канала
и пишут результаты в общий канал результатов. . . .
|
[golang] Pipeline
alhaos 08.06.2026
Pipeline
Pipeline — паттерн конкурентной обработки данных в Go.
Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
|
Свет внутри себя
kumehtar 07.06.2026
Пусть это будет здесь
lIs4oanZS9Y
|
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу.
До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
|
|
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений.
. . .
|
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения
Продолжаю серию постов о дискретно-событийной модели рабочего. . .
|
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы
Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
|
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция
Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
|