Здравствуйте Paul Wolneykien В сообщении от 3 ноября 2011 Paul Wolneykien написал(a): > Я имел в виду, что пробел вставляется в дополнение к байту из > исходной строки in. Это нормально? Я так понимаю, что ошибка где-то раньше - в том, что туда попали пробелы. Не могу гарантировать, но IMHO - это нормально. Как я понимаю, пробелы возникли из-за чего-то, связанного с уникодом. Насколько я помню, QT хранит данные в юникоде (и даже не utf8. а в чём-что ещё). И сколько занимает один символ - не определено (зависит от языка и т.п.). Теперь полез по справочникам: Функция at вытаскивает символ типа QChar по индексу. Вот - описание QCcar: "The QChar class provides a 16-bit Unicode character. In Qt, Unicode characters are 16-bit entities without any markup or structure. This class represents such an entity. It is lightweight, so it can be used everywhere. Most compilers treat it like a unsigned short." Т.е. один QChar занимает 2 байта. QByteArray bb(4, ' '); - отводит 4 байта (не символа). IMHo отсюда и проблема. 16-битный символ пытаются запихнуть в один байт. Т.е. должно быть что-то типа: QByteArray bb(8, ' '); bb = bb.insert(6, in.at(0)); bb = bb.insert(4, in.at(1)); bb = bb.insert(2, in.at(2)); bb = bb.insert(0, in.at(3)); Начсколько это верно, зависит от операции = (как приводятся типы и т.п.) Или QChar bb[4] bb = in.at(0); .... bb = in.at(3)); Я конечно могу ошибаться, но ошибка возникает из-за представления программиста, что символ занимает один байт. -- А ещё говорят так (fortune): The trouble with you Is the trouble with me. Got two good eyes But we still don't see. -- Robert Hunter, "Workingman's Dead" ________________________________________________________________________ С уважением Хихин Руслан