Какая схема используется для кодирования символов Юникода в ярлыке .url?

Какая схема используется для кодирования символов Юникода в ярлыке URL-адреса Windows?

Например, новый ярлык для URL "http://%CE%A8%CE%B1%E2%84%95 ℧ ▶ "создает файл .url с текстом:


[{000214A0-0000-0000-C000-000000000046}]

Prop3 = 19,2

[InternetShortcut]

IDList =

URL = http://?aN??/

[InternetShortcut.A]

URL = http://?aN??/

[InternetShortcut.W]

URL = http://+A6gDsSEVIScltg-/


Каков алгоритм декодирования «+ A6gDsSEVIScltg-» в «Ψαℕ℧ ▶»?

Я не прошу код API, но я хотел бы узнать подробности схемы кодирования.

Примечание. Схема кодирования не является ни utf-8, ни utf-16, ни ucs-2, ни% кодировкой.


person user2707695    schedule 29.10.2019    source источник


Ответы (2)


+A6gDsSEVIScltg- - это форма Ψαℕ℧▶ в кодировке UTF-7.

Правильный способ обработки .url файла - использовать интерфейсы IUniformResourceLocator и IPropertyStorage из CLSID_InternetShortcut COM-объекта. Подробнее см. Internet Shortcuts в MSDN.

person Remy Lebeau    schedule 30.10.2019

Ответ (utf-7) позволил мне успешно разработать процедуру преобразования URL.

Позвольте мне резюмировать шаги:

Чтобы получить URL-адрес Unicode из InternetShortcut.W, найденного в файле .url.

. Передайте символы ascii до crlf, предварительно сделав их безопасными для Интернета.

. Отсутствующий экранированный символ + запускает последовательность Unicode в формате utf-7:

. Собирать 6-битные полубайты из ascii в кодировке base64

. За собранные 16 бит преобразовать 16 бит в utf-8 (1,2 или 3 символа)

. Передайте сгенерированные символы utf8 как% hh

. Продолжайте до появления символа "-"

. Коллектор бит должен быть нулевым

person user2707695    schedule 03.11.2019