1

Кто-нибудь знает, что это за значения реестра и для какого программного обеспечения?

Безопасно ли их удалять? Они находятся под текущим пользователем

1 ответ1

3

Эти строки, вероятно, представляют собой текст ASCII, интерпретируемый как Unicode. Большинство функций Windows API, которые принимают строковые параметры, имеют две версии: одну для 8-битного текста "ANSI" и одну для текста Unicode (UTF-16). Если допущены ошибки, буфер, содержащий 8-битный текст, может быть интерпретирован как содержащий Unicode, в результате чего пары символов разбиваются вместе в 16-битные символы Unicode. Из-за расположения пространства кодовых точек Unicode это почти всегда производит азиатские символы. Я подозреваю, что некоторые программы использовали неправильную версию RegCreateKeyEx, в результате чего их красивые имена ключей ASCII превратились в бессмысленный азиатский текст.

Например, если вы искали This is a test string , вы получите get 桔獩椠⁳⁡整瑳猠牴湩� . Mangling Awesome program v2.0 производит 睁獥浯⁥牰杯慲㉶〮 .

Чтобы попытаться обратить вспять ущерб, вы можете использовать PowerShell!

[System.Text.Encoding]::ASCII.GetString([System.Text.Encoding]::Unicode.GetBytes((gcb)))

Откройте окно PowerShell (Windows+R, powershell), вставьте эту команду, скопируйте имя загадочного ключа из редактора реестра, переключитесь обратно в PowerShell и нажмите Enter. (Команда извлекает текст из буфера обмена.) Он напечатает более-менее оригинальную версию; определенные комбинации символов ASCII могут создавать недопустимые последовательности UTF-16 и не сохраняться в цикле. Последний символ исходной строки может быть заменен на ?? если он содержит нечетное количество символов.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .