В этом простом коде у меня есть проблемы с Unicode:QString в StD :: строка Unicode проблемы
QString qs = QFileDialog::getOpenFileName(0,"","","");
std::string str = qs.toUtf8().constData();
Mat m = imread(str);
Когда достаточное количество является латинским голец набор работает отлично, но когда путь содержит кириллические символы я получаю плохое обращение. Как образец: QS "E: /Кирилиця_49.png": ул «E:/РљРёСЂРёР» РёС † СЏ_49.png»
Я знаю, что происходит, когда ул не на UTF-8 символов набора, но в проекте свойства «Свойство символов» - «Использовать набор символов Юникода». Компилятор MSVC 2010, Qt 5.3.2. В чем может быть проблема?
'QString' хранит данные в unicode. Таким образом, ваше преобразование в порядке. Это не зависит от свойства «Использовать набор символов Unicode». Какой у Вас вопрос? Не могли бы вы сказать, где именно у вас проблема? При выводе для отладки utf строк? –
Проблема в том, что я получаю «E:/РљРёСЂРёР» РёС † СЏ_49.png », но не« E: /Кирилиця_49.png ». Эти значения I копируются из debuger – Bleach
Почему бы не использовать 'QString :: toStdString()' или, скорее, 'QString :: toStdWString()'? – vahancho