Прочитать строки в utf8 из бинарного файла, Ищу решение |
Здравствуйте, гость ( Вход | Регистрация )
Прочитать строки в utf8 из бинарного файла, Ищу решение |
iddqd |
17.7.2010, 14:50
Сообщение
#1
|
Студент Группа: Участник Сообщений: 32 Регистрация: 26.11.2009 Пользователь №: 1261 Спасибо сказали: 1 раз(а) Репутация: 0 |
Есть бинарный файл, в котом местами встречаются строки в кодировке utf8, перед каждой такой строкой стоит её длина в виде qint32.
Вот пример:
06000000 - длина данных с текстом в байтах, D098D0BCD18F - слово "Имя" в utf8 Пытаюсь читать вот так:
В консоли вижу нечитаемый набор символов и знаков вопросов вместо текста. Как правильнее реализовать чтение данных в этом случае? Qt 4.6, Win32 |
|
|
Алексей1153 |
17.7.2010, 17:30
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
А инициализировать то кто будет?
char * label = new char [labelLen]; memset(label,0,sizeof(*label)*labelLen);//<<<<<<<< в общем, строка у тебя нулём не оканчивалась. Ещё полезно после заполнения массива (у тебя из in.readRawData) ставить принудительно ноль в конец массива label[labelLen-1]=0; |
|
|
iddqd |
17.7.2010, 18:50
Сообщение
#3
|
Студент Группа: Участник Сообщений: 32 Регистрация: 26.11.2009 Пользователь №: 1261 Спасибо сказали: 1 раз(а) Репутация: 0 |
Строка не оканчивалась нулем, проверил неоднократно.
Ваш вариант тоже работает корректно, спс. |
|
|
Текстовая версия | Сейчас: 1.12.2024, 15:10 |