| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Как перевести wchar_t в wstring? |
| Автор: darkmamba 16.4.2010, 22:01 | ||
info масив байт, в нем уникод строка. Как перевести строку в wstring что бы потом засунуть в вектор? |
| Автор: jonie 16.4.2010, 22:05 | ||||
а выглядит как char* ... но если вы уверены что это реальный юникод, притом именно такой какой нужен (размер wchar_t может меняться от платформы к платформе) и оно является NULL терминированной строкой тогда:
|
| Автор: darkmamba 16.4.2010, 22:12 |
| Юникод чистой воды, только не весь масив. С вашим кодом вылазят краказябры... |
| Автор: jonie 16.4.2010, 22:22 |
| darkmamba, hex дамп первых пяти символов масива data покажите, у меня сомнения что там юникод у вас + среда выполнения (nix\win\еще чета) |
| Автор: darkmamba 16.4.2010, 22:29 | ||
Среда win. Unicode с 0x17. Это английские буквы, русские сразу видно, что-то вроде 40 xx. |
| Автор: jonie 16.4.2010, 22:34 | ||
ну да, похоже на юникод (судя по всему американские символы, если, конечно диапазон подходящий, что тоже стОит проверить). Так вот если у вас с 0x17 байта начинается юникод тогда так и пишите:
|
| Автор: Alexeis 16.4.2010, 22:42 |
"Gelaxy13xTOI " UTF16-LE . Если что-то не получилось возможно неверно начало. Английские буквы имеют такую последовательность 0xXX00 т.е. сначала значимый потом 00. Проверьте смещение. |
| Автор: darkmamba 16.4.2010, 23:14 | ||
Спасибо всем откликнувшимся, наверно дело в чем то другом. Добавляю в вектор, а когда извлекаю
Пишет S t r o k a : < N u l l > |
| Автор: Alexeis 17.4.2010, 10:30 |
Почему же строка берется из начала вектора, хотя судя по коду он помещается в самый конец? |
| Автор: darkmamba 18.4.2010, 19:29 | ||
"Вектор" deque двухсторонний, из него можно хоть с конца брать, хоть с начала, как и добавлять
А преобразование работает, спасибо большое, и за оперативность!) |