Кто-нибудь знает, что это за значения реестра и для какого программного обеспечения?
Безопасно ли их удалять? Они находятся под текущим пользователем
Эти строки, вероятно, представляют собой текст 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 и не сохраняться в цикле. Последний символ исходной строки может быть заменен на ??
если он содержит нечетное количество символов.
Удаление этих клавиш может привести к тому, что программы обработки текста перестают работать. Их цели, вероятно, станут более понятными, как только вы узнаете, что они должны были быть названы.