同福

PHP实现URL编码、Base64编码、MD5编码的方法【20210427】

介绍

介绍

今天开始福哥要给大家讲解关于字符编码的知识,所谓字符编码就是将一个字符串或者是一个二进制字节数组里面的每一个字符根据一定的规则替换成一个或者多个其他字符的过程。

字符编码的意义有很多种,有的是为了将一些不可见的字符以可见字符替代保证可见度;有的是为了以少数字符去描述更多的其他字符便于传递数据;还有的是为了将不定长的字符串转成定长的规则字符串来实现字符串加密的目的。

编码

编码,英文是Encode,意思是从一个原始的字符串根据编码规则转换成一段新的字符串的过程。

编码后的字符串里面的字符会更加统一,或者更加单一,甚至会变成固定长度。

解码

解码,英文是Decode,和编码正好相反,意思是从一段已经编码后的字符串还原成编码前的原始字符串的过程。

并不是所有的经过编码规则进行编码后的字符串都可以解码会原始字符串的,能够解码回来的编码方式称之为可逆编码方式,不能够解码回来的编码方式称之为不可逆编码方式

URL

URL编码规则是这样的,首先按顺序取出字符串当中的每一个字符,将字符转换为ASCII码的十六进制数值,然后在十六进制数值前面加上一个百分号“%”,最后把每一个字符编码后的组合拼接起来就完成了。而解码规则就是反过来,将编码后的字符串以百分号“%”拆分开,然后将每个十六进制数值转换回ASCII码,最后在拼接到一起就好了。

需要注意的GBK的字符串和UTF-8的字符串在进行URL编码后得到的字符串是不一样的,例如:GBK的“福哥”编码后是“%B8%A3%B8%E7”,而UTF-8的“福哥”编码后是“%E7%A6%8F%E5%93%A5”。

编码

PHP提供了一个专门用来完成URL编码的函数urlencode,使用也非常简单,传入原始字符串,返回编码后的字符串。

echo urlencode("福哥说:PHP的URL编码/解码非常好用");

home/topic/2021/0427/23/42269499995a6688a074fab9b46e7072.jpg

总结

今天福哥带着童鞋们了解了关于URL编码、Base64编码和MD5编码的知识,学会了在PHP语言当中使用这三种编码方式的技巧,一般情况下,学会这三种编码方式就足以应付绝大多数的场景下的数据编码的需要了。

下一课福哥将介绍在Python语言里面实现这三种编码方式的技巧,敬请期待~