Название: Utf8 в Unicode в русском языке Отправлено: MadMax от Октябрь 06, 2010, 18:53 Добрый день, уважаемые форумчане!
Занимаюсь сейчас разработкой сетевого сервиса на 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), который заполняется подстроками из строки запроса. Среди них есть имя пользователя. Так вот если строка, например, такая: "Ирина", то "рина" конвертируется нормально, а первая буква "И" превращается в ??. :((( Остальные буквы алфавита не проверял, потому как это пустая трата времени В чем может быть дело? Название: Re: Utf8 в Unicode в русском языке Отправлено: MadMax от Октябрь 06, 2010, 19:19 Прям вообще очень нужно разобраться....
Название: Re: Utf8 в Unicode в русском языке Отправлено: Авварон от Октябрь 06, 2010, 19:46 Ничего, что ASCII кодировка не содержит символов, кроме латинских?
toUtf8 тогда уже Название: Re: Utf8 в Unicode в русском языке Отправлено: MadMax от Октябрь 06, 2010, 19:55 Как-то странно, что Ascii содержит только английские символы....
А даже если так, то как объяснить то что остальные русские символы конвертируются :) Название: Re: Utf8 в Unicode в русском языке Отправлено: gogi от Октябрь 07, 2010, 10:17 Как-то странно, что Ascii содержит только английские символы.... Если нужны русские буквы, используйте toLocal8Bit() |