IDN
国际化域名(英语:Internationalized Domain Name,缩写:IDN)
Punycode
国际化域名的编码方式,中文域名和一些特殊文字 都需要Punycode 编码一下的
中文(特殊文字)转 Punycode
通过 idn_to_ascii
函数
参考地址:https://www.php.net/manual/zh/function.idn-to-ascii.php
它有四个参数
- domain, utf8 格式的域名,就是。
- options转换选项 - IDNA_ 常量的组合(IDNA_ERROR_ 常量除外)。
- variant 无论INTL_IDNA_VARIANT_2003是IDNA 2003还是INTL_IDNA_VARIANT_UTS46UTS#46。php7 已经弃用INTL_IDNA_VARIANT_2003,使用INTL_IDNA_VARIANT_UTS46 替代
- idna_info 此参数仅在用于时才可 INTL_IDNA_VARIANT_UTS46使用 variant
idn_to_ascii("alone88.我爱你",IDNA_NONTRANSITIONAL_TO_ASCII,INTL_IDNA_VARIANT_UTS46)
转换成:alone88.xn--6qq986b3xl
Punycode 转 中文
通过idn_to_utf8
函数
参考地址:https://php.net/manual/zh/function.idn-to-utf8.php
参数和 idn_to_ascii
一样的,就是域名是已经转码过的,然后通过这个函数转换回去
idn_to_utf8("alone88.xn--6qq986b3xl")
转成成alone88.我爱你,后面的参数可以省略的