С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Криптография
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
FutureCome
104 / 104 / 9
Регистрация: 19.12.2010
Сообщений: 417
Завершенные тесты: 2
1

Распознать кодировку текста в формате СМС *.vmg

09.07.2016, 17:04. Просмотров 738. Ответов 5
Метки нет (Все метки)

Здравствуйте.
Не знаю в какой раздел форума написать.
Имеются файлы *.vmg с экспортированными СМС из телефона Samsung C3322. Но телефон отошёл от оригинального формата файла и непонятно закодировал текст сообщений. То ли кодировку использовал какую-то странную, то ли сжал их каким-то алгоритмом. Поэтому ни одна утилита для работы с VMG не может разобрать текст сообщений.
Так, например, исходная смс:
Телефон первый сел, вспомнил номер такси только 3101010, у них 180р. Из-за этого налички не хватило, ищем банкомат. Смс позже напишу
Превратилось в:
TEXT;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:Телеѽ84он пеѽ80вѽ8Bй ѽ81ел\, вѽ81помнил номеѽ80 =
ѽ82акѽ81и ѽ82олѽ8Cко 3101010\, ѽ83 ниѽ85 180ѽ80. н98з-за=
ѽ8Dѽ82ого налиѽ87ки не ѽ85ваѽ82ило\, иѽ89ем бан=
комаѽ82. Смѽ81 позже напиѽ88ѽ83
А эта:
Спасибо) всё хорошо, водитель позитриф
превратилась:
TEXT;CHARSET=UTF-8;ENCODING=QUOTED-PRINTABLE:Спаѽ81ибо) вѽ81е ѽ85оѽ80оѽ88о\, водиѽ82елѽ8C пози=
ѽ82ѽ80иѽ84
Помогите распознать алгоритм кодирования и преобразовать в обычный Unicode, пожалуйста.
Прилагаю примеры файлов: vmg files 1.zip
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.07.2016, 17:04
Ответы с готовыми решениями:

Как распознать кодировку текста при вводе из файла?
Имеется файл с текстом, написанный в каком-то текстовом редакторе на каком-то...

Изменить кодировку принятых смс
Как не пробовал - не получается public class SmsReceiver extends...

Вставка в тескт нужных символов с конца текста и сохранить в формате текста
Как вставить с другой ячейки и символы цифры считая с конца в такой формат...

Изменить кодировку текста
Пытаюсь изменить кодировку текста через : $text1=array_map("ToWindows1251",...

Изменить кодировку текста
по умолчанию Visual Studio 2010 в C#-проекте кодирует строки в Unicode, то есть...

5
Someone007
2437 / 1913 / 872
Регистрация: 09.05.2015
Сообщений: 4,736
Завершенные тесты: 1
09.07.2016, 17:28 2
http://stackoverflow.com/questions/2...table-encoding
Кодировка Quoted-Printable UTF-8
0
FutureCome
104 / 104 / 9
Регистрация: 19.12.2010
Сообщений: 417
Завершенные тесты: 2
10.07.2016, 00:51  [ТС] 3
Someone007, Посмотрите исходные файлы. Обратите внимание, что Quoted-Printable имеет формат в виде шестнадцатеричного кода со знаком =
В исходном же такого нет, но есть нераспознаваемые символы наподобие ѽ (0xD1 + '='), н (0xD0 + '=') и прочие.
Из примеров можно понять, что ѽ81 - это символ 'с', ѽ82 - символ 'т', то есть это явно некая кодировка.
При этом н98 - символ 'И', возможно, первый байт означает некий внутренний код кодировки/алфавита в телефоне, а второй - код символа.
Интересно что это за кодировка такая интересная и как её перекодировать в Unicode, UTF8 или подобное.

--------------------------------------------------------------------------
Понял. 0D0 и 0D1 - это первый байт двубайтовой версии UTF8. Поскольку второй байт задан через Quoted-Printable, то и получаем некрасивые символы. Попробую пройтись заменой по Quoted-Printable, посмотрим что получится.
0
FutureCome
104 / 104 / 9
Регистрация: 19.12.2010
Сообщений: 417
Завершенные тесты: 2
10.07.2016, 19:48  [ТС] 4
заменил все коды =HH, где H - шестнадцатеричная цифра, на соответствующие байты: Сообщения раскодировались очень хорошо, а вот вместо имени отправителя - иероглифы.
В кодировании имени почему-то используется трёхбайтовая версия UTF8 (первый байт начинается с 1110x).
Так, имя Николай Александрович после декодирования QP стало этим в UTF8:
퀀鴀퀀렀퀀먀퀀븀퀀묀퀀뀀퀀뤀 퀀退퀀묀퀀딀퀀먀턀脀퀀뀀퀀봀퀀됀턀耀퀀븀퀀눀퀀렀턀蜀
Прикладываю образцы: qp decoding.zip
Кто разбирается в кодировках, UTF8, помогите, пожалуйста, понять как этот текст устроен.
0
grizlik78
Эксперт С++
2018 / 1499 / 206
Регистрация: 29.05.2011
Сообщений: 3,121
14.07.2016, 17:35 5
Лучший ответ Сообщение было отмечено FutureCome как решение

Решение

$ echo -n 퀀鴀퀀렀퀀먀퀀븀퀀묀퀀뀀퀀뤀 퀀退퀀묀퀀딀퀀먀턀脀퀀뀀퀀봀퀀됀턀耀퀀븀퀀눀퀀렀턀蜀 | iconv -f utf-8 -t utf32le | hexdump -C
Код
00000000  00 d0 00 00 00 9d 00 00  00 d0 00 00 00 b8 00 00  |................|
00000010  00 d0 00 00 00 ba 00 00  00 d0 00 00 00 be 00 00  |................|
00000020  00 d0 00 00 00 bb 00 00  00 d0 00 00 00 b0 00 00  |................|
00000030  00 d0 00 00 00 b9 00 00  00 20 00 00 00 d0 00 00  |......... ......|
00000040  00 90 00 00 00 d0 00 00  00 bb 00 00 00 d0 00 00  |................|
00000050  00 b5 00 00 00 d0 00 00  00 ba 00 00 00 d1 00 00  |................|
00000060  00 81 00 00 00 d0 00 00  00 b0 00 00 00 d0 00 00  |................|
00000070  00 bd 00 00 00 d0 00 00  00 b4 00 00 00 d1 00 00  |................|
00000080  00 80 00 00 00 d0 00 00  00 be 00 00 00 d0 00 00  |................|
00000090  00 b2 00 00 00 d0 00 00  00 b8 00 00 00 d1 00 00  |................|
000000a0  00 87 00 00                                       |....|
000000a4
$ echo -n Николай Александрович | hexdump -C
Код
00000000  d0 9d d0 b8 d0 ba d0 be  d0 bb d0 b0 d0 b9 20 d0  |.............. .|
00000010  90 d0 bb d0 b5 d0 ba d1  81 d0 b0 d0 bd d0 b4 d1  |................|
00000020  80 d0 be d0 b2 d0 b8 d1  87                       |.........|
00000029
$ echo -n 퀀鴀퀀렀퀀먀퀀븀퀀묀퀀뀀퀀뤀 퀀退퀀묀퀀딀퀀먀턀脀퀀뀀퀀봀퀀됀턀耀퀀븀퀀눀퀀렀턀蜀 | iconv -f utf-8 -t utf32le | sed 's/\x00//g'
Код
Николай Александрович
1
FutureCome
104 / 104 / 9
Регистрация: 19.12.2010
Сообщений: 417
Завершенные тесты: 2
16.07.2016, 22:03  [ТС] 6
grizlik78, большое спасибо. А есть идеи как телефон сформировал такую "кодировку"? Не взял же он текст в UTF-8, добавил байты x00, а потом сконвертировал полученное UTF32le->UTF8?
0
16.07.2016, 22:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.07.2016, 22:03

Распознать речь с ролика YouTube и записать в виде текста
Есть несколько записей на ютюб (и просто на сайтах), которые нужно прослушать и...

Как получить кодировку текста?
Доброго всем времени. Есть строка: D0D6E5F8DD06 (6D5E8FDD60) Знаю результат:...

Как изменить кодировку текста?
Мне нужно прочить файл использую My.Computer.FileSystem.ReadAllText() но оно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru