PHPackages                             mucts/urlencoder - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. mucts/urlencoder

ActiveLibrary

mucts/urlencoder
================

PHP兼容Java的urlencode实现

1.0.0(5y ago)010MITPHPPHP ^7.2

Since Dec 27Pushed 5y agoCompare

[ Source](https://github.com/mucts/urlencoder)[ Packagist](https://packagist.org/packages/mucts/urlencoder)[ RSS](/packages/mucts-urlencoder/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (1)Versions (2)Used By (0)

URLEncode标准
-----------

[](#urlencode标准)

---

- 在1994年订立的RFC1738中。

1. 对字符串中除了“-”、“\_”、“.”之外的所有非字母数字字符都替换成百分号(%)后跟两位十六进制数。
2. 十六进制数中字母必须为大写。

- 在2005年定义的RFC3986中。

1. 将针对- \_.~四个字符之外的所有非字母数字字符进行百分号编码。
2. 在Java和PHP当中，由于历史原因，导致在进行URLEncode的时候，会将空格编码为+，而不是编码为十六进制编码%20

### PHP-URLEncode标准

[](#php-urlencode标准)

- urlencode

1. 实现的是1994年订立的RFC1738，另外特别对空格转义为+。
2. 不做编码的字符：

```
-._0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

```

- rawurlencode

1. 实现的是2005年定义的RFC3986。
2. 不做编码的字符：

```
-._~0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

```

### JAVA-URLEncode标准

[](#java-urlencode标准)

> 主要区别是 \* 号的处理，PHP的编码为%2A，JAVA则保持 \* 号不变。

### 使用示例

[](#使用示例)

```
