当我在浏览器地址栏中放置一些非字母数字符号时,它们会被 url 编码。例如http://ru2.php.net/manual-lookup.php?pattern =привет 变成http://ru2.php.net/manual-lookup.php?pattern=%EF%F0%E8%E2 %E5%F2。
问题是:那两个以百分号为前缀的十六进制数字是什么意思?
当我在浏览器地址栏中放置一些非字母数字符号时,它们会被 url 编码。例如http://ru2.php.net/manual-lookup.php?pattern =привет 变成http://ru2.php.net/manual-lookup.php?pattern=%EF%F0%E8%E2 %E5%F2。
问题是:那两个以百分号为前缀的十六进制数字是什么意思?
它们是 Cyrillic 的 Windows 1251 编码的字节。由于只有六个,它们不可能是 UTF-8,因为 6 个西里尔字母需要 12 个字节的 UTF-8。
CP1251 的代码表可以在这里找到:http ://en.wikipedia.org/wiki/Windows-1251 。
就像 20 是十六进制的空格一样,每个西里尔字符都有其数值,可以表示为两个十六进制数字。