Russian Qt Forum

Qt => Интернационализация, локализация => Тема начата: sibmail от Февраль 11, 2010, 14:02



Название: помогите с перекодированием
Отправлено: sibmail от Февраль 11, 2010, 14:02
в программе я использую 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");..... то все работает.

как получить корректный код???


Название: Re: помогите с перекодированием
Отправлено: sibmail от Февраль 11, 2010, 14:03
использую Qt3.3.8


Название: Re: помогите с перекодированием
Отправлено: voronElf от Февраль 11, 2010, 14:20
Цитировать
spec_symbol.at(0).unicode() //но здесь я уже получаю код 1103

Все правильно, функция unicode() возвращает код символа в юникоде, а заносил ты туда по ascii коду


Название: Re: помогите с перекодированием
Отправлено: sibmail от Февраль 11, 2010, 14:58
Цитировать
spec_symbol.at(0).unicode() //но здесь я уже получаю код 1103

Все правильно, функция unicode() возвращает код символа в юникоде, а заносил ты туда по ascii коду

так как сделать правильно то?


Название: Re: помогите с перекодированием
Отправлено: vadim303 от Февраль 11, 2010, 17:11
 :D
http://www.forum.crossplatform.ru/index.php?s=&showtopic=4263&view=findpost&p=30088 (http://www.forum.crossplatform.ru/index.php?s=&showtopic=4263&view=findpost&p=30088)