PHP URL编码/解码表单字段的%u2019中的漂亮报价

ina*_*ina 4 php forms quotes encoding decoding

出于某种原因,在Jack’s Spindle从文本表单提交这样的字符串到php后,我得到:

Jack%u2019s Spindle

不是什么PHP的urlencode()会做,这将是Jack%92s+Spindlerawurlencode()=Jack%92s%20Spindle

因此,urldecode()原始版本无法解码该字符串...是否有其他函数用于此类字符串?

-

此外,Jack’s Spindle将是HTML安全的方式编码上面,但urlencode()和原始*为此产生:Jack%26%238217%3Bs+SpindleJack%26%238217%3Bs%20Spindle分别...

哪里%u2019来的?它代表什么?你怎么回到那个无辜的撇号?

Art*_*cto 7

好吧,只有你可以告诉我们它来自哪里.从中获取文本以及提交哪些转换?我承认我还没有看到编码策略.

也就是说,它与Javascript编码UTF-16代码单元的方式非常相似:\uXXXX其中每个X代表一个十六进制字符.要将其转换为HTML实体,您可以执行以下操作:

preg_replace('/%u([a-fA-F0-9]{4})/', '&#x\\1;', $string)
Run Code Online (Sandbox Code Playgroud)