无法识别字符串编码

本文关键字:编码 字符串 识别 | 更新日期: 2023-09-27 18:00:53

我需要使用什么编码来对字符串document.write('website%40site.com');进行编码,使其看起来像下面的字符串?

%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%5c%22%6d+61%69%6c%74%6f+3a%63%68%75%6 d%61%6b%73%68%6c 69%61%68%40%6d 61%69%6 c%2e 72%75%5c 22%3e%63%68%75%6c 61%6b%73%%69%61%68%40%6d%61%69%6c%2e%72%75%3c%5c%2f%61%3e%27%29%3b

无法识别字符串编码

这是正常编码的ASCII:

%3c%5c%2f%61%3e = <'/a>

而且很少看到ASCII这样编码,而Unicode则不然。

这是与URL编码相同的编码类型,只是对所有字符进行了编码,而不是只对实际需要编码的字符进行编码。每个字节被转换为一个两位数的十六进制数字,前缀为%

您可以使用UTF-8对字符串进行编码,然后将每个字节转换为十六进制代码:

string encoded = String.Concat(
  Encoding.UTF8.GetBytes("document.write('website%40site.com');")
  .Select(b => "%" + b.ToString("x2"))
  .ToArray()
);

这要么是ASCII,要么是UTF-8,要么是ASCII的8位超集之一。无法确定。

你最好的选择是阅读你试图传递给的任何函数或程序的文档。

这里有一个在线编码器/解码器,可以随心所欲。