Название: QString + коды ASCII Отправлено: BuRn от Ноябрь 03, 2011, 18:18 Вообщем хотелось бы узнать, на данный момент работаю с кассовым аппартом и на нем что бы напечатать строку, какую-либо, нужно ее перегнать в коды ASCII т.е. к примеру вот
x90\xA5\xA6\x2E\x20\xAF\xA5\xE7\x2E\x20\x20\x20\x20\x20\x20\x20\x20\x20 если честно не помню что за строка, но смысл я думаю ясен, чем можно перегонять строку , т.е. к примеру получить из QString str = "Hello" ; строку вида которого я привел выше Спасибо Название: Re: QString + коды ASCII Отправлено: BRE от Ноябрь 03, 2011, 18:20 QByteArray QString::toAscii () const
Название: Re: QString + коды ASCII Отправлено: BuRn от Ноябрь 03, 2011, 18:30 т.е. что-то типа
QString str = "Hello"; QbyteArray str1 = str.toAscii(); ? Название: Re: QString + коды ASCII Отправлено: Alex Custov от Ноябрь 04, 2011, 04:42 прямой функции нет. Либо вручную проходись по элементам массива и преобразуй каждый символ в нужный hex, и записывай результат в другую строку. Или используй QByteArray("hello").toHex(), но после этого тоже придётся самому вставлять дополнительные символы \x
Название: Re: QString + коды ASCII Отправлено: andrew.k от Ноябрь 04, 2011, 12:10 QByteArray QString::toAscii () const Эта функция не переводит QString в ASCII. Смотри третий абзац описания в ассистенте.Она просто преобразует QString в QByteArray. Название: Re: QString + коды ASCII Отправлено: andrew.k от Ноябрь 04, 2011, 12:18 Всвязи с этим я так с ходу не понял как преобразовать к ASCII.
Пример: Условие задачи. Исходники в кодировке UTF-8. Пишу в коде Код получаю по два байта на каждый символ итого 10 байт (плюс ноль в конце. или 9? не суть.). Хочу получить в виде ASCII. Код Дает мне массив из тех же 10 (или 9) байт! Название: Re: QString + коды ASCII Отправлено: BRE от Ноябрь 04, 2011, 12:50 Я написал имя метода, читая описание которого (вместе с see also), можно со всем разобраться. :)
Ключевая фраза как раз во втором абзаце и ведет она к QTextCodec. Если кодек для сишных строк устанавливался (а многие его для чего-то устанавливают), то будет происходить преобразование. А если еще внимательно почитать про QTextCodec, то вообще все вопросы связанные с кодировками отпадут. ;) Название: Re: QString + коды ASCII Отправлено: andrew.k от Ноябрь 04, 2011, 13:18 Грамотно съехал? )
Я понял. Т.е. из UTF-8 строки можно получить либо строку в кодировке CP1251 либо KOI8-R к примеру, которые являются однобайтовыми. У QTextCodec нет кодировки ASCII в списке поддерживаемых. А Latin-1 это и есть ASCII? Название: Re: QString + коды ASCII Отправлено: LisandreL от Ноябрь 04, 2011, 14:25 в кодировке UTF-8 Очень странно. "test" в utf-8 должен занимать 4 байта.Дает мне массив из тех же 10 (или 9) байт! Название: Re: QString + коды ASCII Отправлено: kambala от Ноябрь 04, 2011, 14:33 А Latin-1 это и есть ASCII? Цитата: QString::toAscii() If a codec has been set using QTextCodec::setCodecForCStrings(), it is used to convert Unicode to 8-bit char; otherwise this function does the same as toLatin1(). Название: Re: QString + коды ASCII Отправлено: andrew.k от Ноябрь 04, 2011, 14:59 в кодировке UTF-8 Очень странно. "test" в utf-8 должен занимать 4 байта.Дает мне массив из тех же 10 (или 9) байт! Название: Re: QString + коды ASCII Отправлено: andrew.k от Ноябрь 04, 2011, 15:02 А Latin-1 это и есть ASCII? Цитата: QString::toAscii() If a codec has been set using QTextCodec::setCodecForCStrings(), it is used to convert Unicode to 8-bit char; otherwise this function does the same as toLatin1(). Это означает, что latin1 и ASCII разные кодировки? Название: Re: QString + коды ASCII Отправлено: andrew.k от Ноябрь 04, 2011, 15:07 Почитал на википедии про эти кодировки. Понял различие.
В общем пример, который я приводил, у меня был на днях. В общем toAscii() возвращала двухбайтовое представление строки. Название: Re: QString + коды ASCII Отправлено: BuRn от Ноябрь 05, 2011, 18:33 кому интересно , реализовал
Название: Re: QString + коды ASCII Отправлено: andrew.k от Ноябрь 05, 2011, 19:07 что именно?
выкладывай. |