Название: to utf8 string Отправлено: UVV от Март 30, 2009, 06:24 Есть такое преобразование:
Код: string s; А как из t обратно в s? Название: Re: to utf8 string Отправлено: Rcus от Март 30, 2009, 06:33 Код: inline std::string QString::toStdString() const Название: Re: to utf8 string Отправлено: UVV от Март 30, 2009, 07:05 Код: inline std::string QString::toStdString() const Спасибо, вот это помогло: Код: QTextCodec *codec = QTextCodec::codecForName("UTF-8"); Название: Re: to utf8 string Отправлено: crackedmind от Март 30, 2009, 07:10 Ну можно еще воспользоваться QTextEncoder/QTextDecoder как вариант. Вместо глобальной установки кодека.
Название: Re: to utf8 string Отправлено: UVV от Март 30, 2009, 07:17 Зачем? Разве нужно ещё что-то, кроме utf-8? ;)
Название: Re: to utf8 string Отправлено: shadone от Апрель 01, 2009, 15:08 Есть такое преобразование: как это string (это std::string ?) содержит utf8 строку?? std::string хранит строки без преобразования, т.е. в текущей локали - поэтому для преобразования QString<->std::string надо использовать toLocal8Bit/fromLocal8Bit.Код: string s; А как из t обратно в s? Название: Re: to utf8 string Отправлено: Alex03 от Апрель 02, 2009, 08:08 как это string (это std::string ?) содержит utf8 строку?? std::string хранит строки без преобразования, т.е. в текущей локали - поэтому для преобразования QString<->std::string надо использовать toLocal8Bit/fromLocal8Bit. std::string хранит строку такую - какую в него положили, текущая локаль тут не при чём.UVV По вопросу топика: Код: s = t.utf8().constData(); Название: Re: to utf8 string Отправлено: shadone от Апрель 02, 2009, 11:27 как это string (это std::string ?) содержит utf8 строку?? std::string хранит строки без преобразования, т.е. в текущей локали - поэтому для преобразования QString<->std::string надо использовать toLocal8Bit/fromLocal8Bit. std::string хранит строку такую - какую в него положили, текущая локаль тут не при чём.Название: Re: to utf8 string Отправлено: pastor от Апрель 02, 2009, 11:38 однако std::string не является unicode-aware контейнером и хранить там utf8 строки - странно. +1 Для хранение unicode-строк есть std::wstring Название: Re: to utf8 string Отправлено: Rcus от Апрель 02, 2009, 12:00 По мне так вполне нормальное решение когда не нужно выводить строки пользователю. Например в протоколе ed2k строковые теги передаются в utf8, было бы странно хранить их в utf16/utf32 только затем, чтобы преобразовать обратно в utf8 для передачи.
|