Добрый день, уважаемые форумчане!
Занимаюсь сейчас разработкой сетевого сервиса на Qt 4.6, который обслуживает запросы от клиента, написанного на Flash (используется XMLSocket).
По необходимости сервер конвертирует строку запроса в Unicode.
Столкнулся с одной очень неприятной ситуацией - надеюсь Вы мне поможите.
Картина такая:
В целом мой сервис работает "на ура". Однако, если от Flash-клиента приходит строка, содержащая русскую букву "И" (именно большая), перевечти ее корректно в Unicode мы не можем.
Вот код, который выполняет преобразование:
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
// получаем имя пользователя из переменных запроса
strName = request_vars[2];
// непосредственно преобразование в unicode + добавление строки в БД
AddToDB(..., codec->toUnicode(strName.toAscii()), ...);
request_vars - это массив строк (QStringList), который заполняется подстроками из строки запроса. Среди них есть имя пользователя.
Так вот если строка, например, такая: "Ирина", то "рина" конвертируется нормально, а первая буква "И" превращается в ??.
((
Остальные буквы алфавита не проверял, потому как это пустая трата времени
В чем может быть дело?