2011-01-03 13 views
2

Я пытаюсь выяснить, как декодировать «устаревший» двоичный файл, поступающий из приложения Windows (anno ± 1990). В частности, мне сложно понять, какая конкретная кодировка используется для хранимых строк.Декодирование старого двоичного формата

Пример: строка Юникода «Дюссельдорф» представлена ​​как «Du \ 06sseldorf» или hex «44 75 06 73 73 65 6C 64 6F 72 66», где все однобайтное, кроме «u + \ 06», что таинственно стать u-умлаутом.

Является ли он полностью патентованным? Есть идеи?

ответ

6

Поскольку это приложение предшествует DBCS и Unicode, я подозреваю, что оно является собственностью. Похоже, что они могут использовать значения, отличные от ASCII ниже 31, для представления различных знаков акцента.

\06 может указывать «положить умлаут на предыдущий символ».

Попробуйте заменить строку на "Du\05sseldorf" и проверьте, не меняется ли акцент на u. Затем попробуйте другие escape-значения между 1 и 31, и я подозреваю, что вы сможете создать карту для этих escape-символов. Конечно, если у вас есть карта, вы можете легко создать рутину для замены всех строк правильными современными строками Unicode с акцентами на месте.

+0

Спасибо! Я пойду с таблицей сопоставления. – tbikeev