javascript - 如何消除PHP和JS 对URL编解码的不同之处,统一前后端对URL的编解码
程序员文章站
2022-06-16 15:58:47
...
php和Js各自针对URL编解码方式对部分特殊字符的处理都有所不同。 这里不考虑
escape()
,主要是 js 的encodeURI() 、encodeURIComponent()
跟php 的urlencode() 、rawurlencode()
查阅资料得到的是:
urlencode()
对_-.
以外的字符都做了处理,并且对空格的编码和其他函数不一样;urlencode()
和rawurlencode()
对~
的处理也不一样encodeURI()
不会编码 除_-.
外的~!*()'
encodeURIComponnect()
不会编码 除_-.
外的~!@#$&*()=:/,;?+'
假设在UTF-8的编码情况下, 如何统一前后端对URL编解码? 有什么比较好的解决方案,处理这种问题
回复内容:
php和Js各自针对URL编解码方式对部分特殊字符的处理都有所不同。 这里不考虑 escape()
,主要是 js 的encodeURI() 、encodeURIComponent()
跟php 的urlencode() 、rawurlencode()
查阅资料得到的是:
urlencode()
对_-.
以外的字符都做了处理,并且对空格的编码和其他函数不一样;urlencode()
和rawurlencode()
对~
的处理也不一样encodeURI()
不会编码 除_-.
外的~!*()'
encodeURIComponnect()
不会编码 除_-.
外的~!@#$&*()=:/,;?+'
假设在UTF-8的编码情况下, 如何统一前后端对URL编解码? 有什么比较好的解决方案,处理这种问题
转码的作用是为了转义url中的特殊字符,用encodeURIComponnect一直没有问题