Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Общие вопросы _ Как по коду (числу) получить символ?

Автор: sibmail 8.4.2009, 5:30

из символа в код
str.at(0).unicode(); или str[0].toAscii();

а вот обратно пожскажите...

Автор: Litkevich Yuriy 8.4.2009, 7:36

Цитата(sibmail @ 8.4.2009, 9:30) *
из символа в код
str.at(0).unicode(); или str[0].toAscii();
приведённый пример несколько не соответсчтвует словесному описанию. То, что в нем делается можно описать так:
Символ в заданной позиции строки преобразовать
1) в код символа в Unicode
2) к типу ASCII, если это позволяет текущий кодек.

обратные операции:
1)
Цитата
QChar::QChar ( uint code )
Constructs a QChar for the character with Unicode code point code.

2)
Цитата
QChar QChar::fromAscii ( char c ) [static]

Автор: igor_bogomolov 8.4.2009, 8:27

Цитата(sibmail @ 8.4.2009, 6:30) *
а вот обратно пожскажите...

А я вот вообще теряюсь, что значит обратно? Может имелось в виду, вставить в указанную позицию в строке число?
int i = 5;
QString str = "8string";
str.replace(0, 1, QString::number(i));
Или просто строку получить из числа
int j = 12345;
QString str = QString::number(j)

Автор: sibmail 8.4.2009, 10:00

короче есть число, например 255. в ascii соответствует букве "я". нужен код который бы переводил число в символ.
какие еще сомнения??

еще пример кода можно ?? )))

Автор: Litkevich Yuriy 8.4.2009, 10:01

Цитата(sibmail @ 8.4.2009, 14:00) *
например 255. в ascii соответствует букве "я".
Это тебе QByteArray нужн

Автор: sibmail 8.4.2009, 10:07

QChar a='я';
qDebug()<< a.unicode(); // 255

qDebug()<<QChar::QChar(255) ; // 'y'


почему так?? как сделать на 255 выводилась буква 'я' ??

Автор: Litkevich Yuriy 8.4.2009, 10:17

Цитата(sibmail @ 8.4.2009, 14:07) *
почему так??
кодек надо установить для преобразования из внутреннего представления в наружное:
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
если у тебя виндовоз, у которого две кодировки одновременно сосуществуют, то вместо вывода в консоль перенаправь вывод в файл:
>myapp.exe 2 > out.txt

Автор: sibmail 8.4.2009, 10:22

У меня виндос, но и под линуксом тоже будет
работаю в qt creator, там вывод есть свой (не консольный)

QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());

вывод изменился но не помог:
1103
'y'

Автор: Litkevich Yuriy 8.4.2009, 10:25

Цитата(Litkevich Yuriy @ 8.4.2009, 14:17) *
то вместо вывода в консоль перенаправь вывод в файл:
а так делал?

Автор: sibmail 8.4.2009, 11:06

Цитата(Litkevich Yuriy @ 8.4.2009, 11:25) *
Цитата(Litkevich Yuriy @ 8.4.2009, 14:17) *
то вместо вывода в консоль перенаправь вывод в файл:
а так делал?



зачем мне файл
мне в edit-поле надо выводить

Автор: Litkevich Yuriy 8.4.2009, 11:45

Цитата(sibmail @ 8.4.2009, 15:06) *
зачем мне файл
мне в edit-поле надо выводить
ну туда и вводи. Я-то тебе про консоль (кодировка в консоли != кодировке в GUI, для виндовоза)

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)