Прочитать строки в 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 |
|
|
DIMEDROLL |
17.7.2010, 15:32
Сообщение
#2
|
Участник Группа: Участник Сообщений: 165 Регистрация: 28.9.2008 Из: Киев Пользователь №: 304 Спасибо сказали: 23 раз(а) Репутация: 0 |
для начала попробуй так:
|
|
|
iddqd |
17.7.2010, 15:41
Сообщение
#3
|
Студент Группа: Участник Сообщений: 32 Регистрация: 26.11.2009 Пользователь №: 1261 Спасибо сказали: 1 раз(а) Репутация: 0 |
Вот этот вариант
даёт в консоли "Имя??????????" Вроде нормально, только откуда эти знаки вопроса? |
|
|
DIMEDROLL |
17.7.2010, 15:51
Сообщение
#4
|
Участник Группа: Участник Сообщений: 165 Регистрация: 28.9.2008 Из: Киев Пользователь №: 304 Спасибо сказали: 23 раз(а) Репутация: 0 |
подозреваю что ты неправильно считываешь размер строки и соотвественно читаешь данные которые находятся за строкой, а потом их конвертишь в строку
сколько у тебя labelLen выдает? |
|
|
iddqd |
17.7.2010, 15:54
Сообщение
#5
|
Студент Группа: Участник Сообщений: 32 Регистрация: 26.11.2009 Пользователь №: 1261 Спасибо сказали: 1 раз(а) Репутация: 0 |
labelLen после считывания равен 6. И 6 байт (по 2 байта на одну русскую букву в utf8) - это правильный размер данных с текстом.
|
|
|
Текстовая версия | Сейчас: 29.11.2024, 3:53 |