首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单引号JS encodeuri与PHP rawurlencode

单引号JS encodeuri与PHP rawurlencode
EN

Stack Overflow用户
提问于 2012-04-16 09:21:52
回答 1查看 390关注 0票数 1

我正在尝试用cURL在PHP语言中模仿AJAX发出的POST请求。

我注意到的一件事是,为什么PHP将单引号转义为%27,而JS的encodeuricomponent保持原样?

PHP中真的有一个函数与JS中的函数相同吗?

EN

回答 1

Stack Overflow用户

发布于 2014-02-07 09:38:20

您将找不到不对单引号进行编码的PHP函数。原因是PHP更加严格地遵守RFC 3986,包括单引号。

RFC 3986保留特殊字符,如!, ', (, ), and *

URI包括由分隔的组件和子组件

“保留”集合中的字符。这些字符被称为

“保留”,因为它们可能(也可能不)被定义为分隔符

一般语法,按每个方案特定的语法或按

URI的取消引用算法的特定于实现的语法。

如果URI组件的数据与保留的

字符作为分隔符的用途,则必须在形成URI之前对冲突数据进行百分比编码。

保留= gen-delims / sub-delims

gen-delims = ":“/”?“/ "#”/ "@“

sub-delims = "!“/ "$”/ "&“/ "'”/ "(“/ ")”/ "*“/ "+”/ ",“/ ";”/ "=“

如果您希望匹配php并将单引号编码为js,则可以使用如下函数。

代码语言:javascript
复制
function fixedEncodeURIComponent (str) {  
  return encodeURIComponent(str).replace(/[!'()*]/g, escape);  
} 

为什么你不需要对它进行编码?它应该仍然适用于卷曲。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10167707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档