Название: Проблема с юникод Отправлено: EricVoyager от Август 14, 2012, 15:06 Как вывести символ на кнопку, имея его код?
Код: PushButton->setText(QChar(65514)); Как-то странно... Спасибо. Название: Re: Проблема с юникод Отправлено: Странник от Август 14, 2012, 15:11 шрифты?
Название: Re: Проблема с юникод Отправлено: EricVoyager от Август 14, 2012, 15:15 да вот тоже подумал...) чё-нибудь да забуду всегда)
спасибо) Название: Re: Проблема с юникод Отправлено: LisandreL от Август 14, 2012, 15:16 Кодировку заодно посмотрите какую используете.
Название: Re: Проблема с юникод Отправлено: EricVoyager от Август 16, 2012, 12:01 Вот тут ещё одна проблемка возникла, тоже с символами юникода, поэтому спрошу тут.
str.append(QChar(0x000A)); Необходимо добавить символ с номером 0A, т. е. конец строки (юниксовый, насколько я знаю), обозначается как LF. Вместо этого упорно добавляет два символа - CR (номер 0D, кажется) и LF, т.е виндовый конец строки. А мне нужен именно LF в единственном экземпляре. Чё делать?))) Char выдаёт то же самое. И char и qchar считают 0x000A как CR+LF, удалить один из них из строки не удаётся - удаляются оба сразу. Название: Re: Проблема с юникод Отправлено: Serr500 от Август 16, 2012, 14:31 Попробуйте использовать вместо QString QByteArray.
Название: Re: Проблема с юникод Отправлено: EricVoyager от Август 16, 2012, 14:58 Нет, не помогает.
Вообще-то я не сказал, но может быть "виноват" QTextStream. Я строку/символ вывожу в файл, именно там и смотрю, чё к чему. У QTextStream задал кодировку UTF-16 BE. Есть ещё идеи? Название: Re: Проблема с юникод Отправлено: Kurles от Август 16, 2012, 15:03 Нет, не помогает. По логике использовать QDataStream + QByteArray )Вообще-то я не сказал, но может быть "виноват" QTextStream. Я строку/символ вывожу в файл, именно там и смотрю, чё к чему. У QTextStream задал кодировку UTF-16 BE. Есть ещё идеи? Название: Re: Проблема с юникод Отправлено: kambala от Август 16, 2012, 15:08 Нет, не помогает. именно он и виноват, т.к. пишет концы строк соответствующие платформе. как вариант – после записи текста через QTextStream просто выполнить string.remove(QChar(CR code))Вообще-то я не сказал, но может быть "виноват" QTextStream. Я строку/символ вывожу в файл, именно там и смотрю, чё к чему. У QTextStream задал кодировку UTF-16 BE. Есть ещё идеи? Название: Re: Проблема с юникод Отправлено: EricVoyager от Август 16, 2012, 16:03 Спасибо большое!
Только вопрос... наверно глупый. А у кого, собсно, ремувить, то? QString-то уже записана в QTextStream. Название: Re: Проблема с юникод Отправлено: kambala от Август 16, 2012, 16:28 QTextStream открывается на чём-то, например на строке или файле. если на файле, то сначала всё записать в строку, а после удаления символов записать её в файл.
Название: Re: Проблема с юникод Отправлено: EricVoyager от Август 16, 2012, 16:40 Прошу прощения, всё-таки я что-то не понимаю.
Цитировать QFile file1(<name>); file1.open(QIODevice::WriteOnly | QIODevice::Text); QTextStream out1(&file1); out1.setCodec("UTF-16 BE"); QString str; ... <манипуляции, включающие добавления QChar(0x000A)> ... out1 << str; file1.close(); Так в каком месте должен быть remove(...) и к кому его применить? Название: Re: Проблема с юникод Отправлено: Kurles от Август 16, 2012, 16:58 Код примерно так, я думаю. Название: Re: Проблема с юникод Отправлено: EricVoyager от Август 16, 2012, 17:13 Неа...
Во-первых, вместо before.append(0x0a); наверно вы имели ввиду "before.append(0x0d);", так как нам нужно выкинуть CR (номер 0x0D). Во-вторых, ругается на before.append(0x00);. Пофиг, выкинул пока эту строку. В-третьих, выводит пустой файл. Даже если убрать все манипуляции и оставить только Код: QFile file1(<name>); Название: Re: Проблема с юникод Отправлено: EricVoyager от Август 16, 2012, 17:45 Короче, разобрался.
Если кому интересно - просто отправил строку в QByteArray, там пришлось вручную поменять байты местами (LE на BE), так как не нашёл работающей функции у QString для этого, а потом QByteArray записал в файл. Прокатило. |