Russian Qt Forum
Сентябрь 21, 2024, 17:16 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Utf8 в Unicode в русском языке  (Прочитано 3649 раз)
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), который заполняется подстроками из строки запроса. Среди них есть имя пользователя.

Так вот если строка, например, такая: "Ирина", то "рина" конвертируется нормально, а первая буква "И" превращается в ??. Грустный((

Остальные буквы алфавита не проверял, потому как это пустая трата времени

В чем может быть дело?
Записан
MadMax
Гость
« Ответ #1 : Октябрь 06, 2010, 19:19 »

Прям вообще очень нужно разобраться....
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #2 : Октябрь 06, 2010, 19:46 »

Ничего, что ASCII кодировка не содержит символов, кроме латинских?
toUtf8 тогда уже
Записан
MadMax
Гость
« Ответ #3 : Октябрь 06, 2010, 19:55 »

Как-то странно, что Ascii содержит только английские символы....
А даже если так, то как объяснить то что остальные русские символы конвертируются Улыбающийся
Записан
gogi
Гость
« Ответ #4 : Октябрь 07, 2010, 10:17 »

Как-то странно, что Ascii содержит только английские символы....

Если нужны русские буквы, используйте toLocal8Bit()
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.042 секунд. Запросов: 22.