首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >PHP 中文域名 和 Punycode 相互转码

PHP 中文域名 和 Punycode 相互转码

作者头像
Alone88
发布2019-10-22 16:51:29
发布2019-10-22 16:51:29
4.8K0
举报
文章被收录于专栏:Alone88Alone88

域名 punycode 中文 IDN

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
代码语言:javascript
复制
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 一样的,就是域名是已经转码过的,然后通过这个函数转换回去

代码语言:javascript
复制
idn_to_utf8("alone88.xn--6qq986b3xl") 
转成成alone88.我爱你,后面的参数可以省略的

本文由 Alone88 创作,采用 知识共享署名4.0 国际许可协议进行许可 本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名 最后编辑时间为: May 31, 2019 at 02:56 pm

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • IDN
    • Punycode
    • 中文(特殊文字)转 Punycode
    • Punycode 转 中文
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档