crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Помогите с кодировками
sibmail
  опции профиля:
сообщение 11.2.2010, 13:54
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 63
Регистрация: 20.3.2009
Пользователь №: 626

Спасибо сказали: 0 раз(а)




Репутация:   0  


в программе я использую CP1251
в main.cpp написал следующее
QTextCodec *codec=QTextCodec::codecForName("CP1251");
QTextCodec::setCodecForTr(codec);
QTextCodec::setCodecForCStrings(codec);
QTextCodec::setCodecForLocale(codec);

QString spec_symbol;
int code=255;
spec_symbol+=(char)code; //spec_symbol="я"

и теперь обратно от символа к коду

spec_symbol.at(0).unicode() //но здесь я уже получаю код 1103


Если в начале убрать QTextCodec *codec=QTextCodec::codecForName("CP1251");..... то все работает.

как получить корректный код???
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
vadim303
  опции профиля:
сообщение 11.2.2010, 15:29
Сообщение #2


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 18.1.2010
Пользователь №: 1382

Спасибо сказали: 2 раз(а)




Репутация:   0  


Имхо вы загоняете в QString символ я в кодировке cp1251, а потом получаете код этого символа в юникоде. Так что вполне логичный результат "я" как раз в юникоде имеет код 1103 (0x044F) ;)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 19.4.2024, 13:48