tinson / urlencode
此包最新版本(dev-master)没有可用的许可证信息。
用PHP模拟Java的urlEncode实现
dev-master
2018-11-07 16:29 UTC
Requires
- php: >=5.6
This package is not auto-updated.
Last update: 2024-09-20 21:17:12 UTC
README
- 在1994年发布的RFC1738中。
- 将字符串中除“-”、“_”、“.”之外的所有非字母数字字符替换成百分号(%)后跟两位十六进制数。
- 十六进制数中的字母必须为大写。
http://tools.ietf.org/html/rfc1738
- 在2005年定义的RFC3986中。
- 将针对- _.~四个字符之外的所有非字母数字字符进行百分号编码。
- 由于历史原因,在Java和PHP中,在进行URLEncode时,会将空格编码为+,而不是编码为十六进制编码%20
http://tools.ietf.org/html/rfc3895
PHP-URLEncode标准
urlencode
- 实现的是1994年发布的RFC1738,另外特别将空格转义为+。
- 不进行编码的字符:
-._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
rawurlencode
- 实现的是2005年定义的RFC3986。
- 不进行编码的字符:
-._~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
JAVA-URLEncode标准
主要区别是*号的处理,PHP的编码为%2A,JAVA则保持*号不变。
使用示例
<?php
use UrlEncode\Java;
$res = Java::urlEncode("~ -+.*");
var_dump($res);