Это тот же тип кодирования, что и кодирование URL, за исключением того, что кодируются все символы, а не только те, которые действительно требуют кодирования. Каждый байт преобразуется в двузначное шестнадцатеричное число с префиксом %
.
Вы можете закодировать строку, используя UTF-8, а затем преобразовать каждый байт в шестнадцатеричный код:
string encoded = String.Concat(
Encoding.UTF8.GetBytes("document.write('website%40site.com');")
.Select(b => "%" + b.ToString("x2"))
.ToArray()
);