我有用户提交的标签,可以是任何类型的(有效的)UTF-8字符串.我想知道是否可以通过运行它们通过urlencode()将它们包含在URL中.
换句话说,urlencode()可以安全地用于有效的UTF-8字符串吗?
(有效我的意思是id已经强制编码为UTF-8)
urlencode
不依赖于特定的字符编码.它只是查看字节,将其解释为ASCII字符,并替换ASCII(0x80-0xFF)中不允许的任何字节,或者不允许在URL中显示.
现在您的问题:是的,使用urlencode将任何字符编码的任何字符串进行编码以安全使用 – 但仅在URL查询中!因为urlencode根据application/x-www-form-urlencoded不同于“正常”percent encoding的输入格式化输入:空格被编码的方式:在应用程序/ x-www-form-urlencoded的空格中,“正常”百分比编码取代它们.
如果要“正常”百分比编码使用rawurlencode
.