kri*_*ina 12 html urlencode character-encoding
我有一个表格method="get".在表单中,我需要传递CSS文件的URL,但它将其编码为http%3A%2F%2Fwww...等.
有没有办法停止URL的编码,因为它打破了文件.
谢谢
Abe*_*bel 13
这比初看起来的人更微妙一些.对于任何URL,这是URI标准的特定形式,某些字符是特殊的.特殊字符包括:(方案分隔符)和/(路径或层次分隔符),这里是RFC-2396中保留符号的完整列表:
reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" |
"$" | ","
它与安全性几乎没有关系,只需遵循标准:这些符号在任何URI,URL或URN中都是特殊的.当您需要将它们用作路径或查询字符串的一部分时(GET请求为您创建查询字符串),您需要转义它们.转义的简短版本是:将UTF-8字节作为十六进制,并在它们前面加上%符号.对于保留字符,它始终是UTF-8中的单字节字符,因此转义为两个十六进制数字.
回到你的问题.你没有提到你使用的语言.但任何与互联网一起使用的语言都有一种编码或解码URL的方法.有些函数需要辅助函数来解码整个URL,但通常最好将其拆分为名称/值对,然后对其进行解码.这将为您提供所需的绝对URL路径.
注意:最好始终解码查询值,因为当人们键入值时,他们将不知道该值是否被保留,并且浏览器将为您编码.不这样做会带来安全风险.
编辑:当您需要在页面内解码而不是在服务器端解码时,您将需要JavaScript来完成这项工作.请查看此页面以获取/解码网址,或使用Google查找其他许多网址.