如何实现Punycode中文域名转码

如果你见过中文域名应该会觉得很奇怪,为什么复制出来的域名变成一个很莫名其妙的字符串,比如这个秀恩爱的域名“郝越.我爱你”,实际显示的域名是 http://xn--vq3al9d.xn--6qq986b3xl/ 这就叫 Punycode 具体查看 https://www.punycoder.com/

Punycode 是一个根据 RFC 3492 标准而制定的编码系统,主要用于把域名从地方语言所采用的 Unicode 编码转换成为可用於 DNS 系统的编码。郝越.我爱你域名不是常规的字符,所以域名机构规定把他 转码成了 http://xn--vq3al9d.xn--6qq986b3xl/ 类似的还有 āáǎà.com 转码成了 xn--0cab9g30b.com/

在百度搜索“中文域名转码”,进入在线编码的网站,提交中文域名,即可将中文域名转为 punycode 或者是 GBK 编码。在 nginx 配置文件中使用:

 

//参考https://blog.zhengxianjun.com/2015/05/chinese-domain-and-nginx-conf/

server {

listen 80;

server_name xn--vq3al9d.xn--6qq986b3xl;

index index.php;

root /alidata/www/love;

}

 

在 PHP 中可以使用如下方法转换

 

#sudo apt-get install php5-intl

$xn_idn = idn_to_ascii('郝越.我爱你');

echo $xn_idn; // xn--vq3al9d.xn--6qq986b3xl

$idn = idn_to_utf8($xn_idn);

echo $idn; // 郝越.我爱你

 

如果不用扩展,可以使用 true/punycode 包 https://github.com/true/php-punycode 安装 composer require true/punycode:~2.0

 

// Import Punycode

use TrueBV\Punycode;

$Punycode = new Punycode();

var_dump($Punycode->encode('renangonçalves.com'));

// outputs: xn--renangonalves-pgb.com

var_dump($Punycode->decode('xn--renangonalves-pgb.com'));

// outputs: renangonçalves.com

 

然后推荐一个阿里出品的 AnyProxy ,它是一个开放式的HTTP代理服务器,平常除了 fiddler 抓包,这个也很方便。

使用方法如下:

 

node.js通过npm install -g anyproxy 安装AnyProxy 启用https代理

$ anyproxy -i --rule=wxdumpchange_score/wxdump.js

[AnyProxy Log][2018-02-27 11:12:46]: Http proxy started on port 8001

[AnyProxy Log][2018-02-27 11:12:46]: web interface started on port 8002

 

移动端通过wifi代理启用anyproxy的服务器的ip,端口默认为8001

移动端要安装证书才能使用,不然无法拦截https请求 然后移动端通过浏览器进入 ip:8002 点击下载crt证书 进行安装

ios要在设置 通用 关于本机 最下面的证书信任里面吧anyproxy打开

 

最后测试下 curl http://httpbin.org/user-agent --proxy http://127.0.0.1:8001 浏览器访问http://127.0.0.1:8002 ,界面上能看到刚才的请求信息

转载于:https://www.cnblogs.com/ymwang/p/8610534.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/453219.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

进程控制块包含的信息

进程控制块包含三类信息 1.标识信息。 用于唯一地标识一个进程,常常分由用户使用的外部标识符和被系统使用的内部标识号。几乎所有操作系统中进程都被赋予一个唯一的、内部使用的数值型的进程号,操作系统的其他控制表可以通过进程号来交叉引用进程控制…

增加表单的文字段的html的代码是,表单及表单新增元素(示例代码)

要想更好运用表单就要了解表单的的更多元素与属性,首先看看对表单基本了解。表单的基本了解 元素用于用户输入数据的收集元素是最重要的表单元素,有许多type其中是用于向表单处理程序提交表单的按钮。元素 元素定义待选择的下拉列表选项,元素…

给博客或站点加入百度统计

概述 记得刚接触百度统计的时候,苦于没有个人网站,不能加入统计代码查看访问量等数据。然后渐渐的忘了这件事。之前看别人博客中提及了百度统计,然后粗略的看了一下加入方法,觉得很惊喜,太简单了! 加入方法…

项目规划管理

项目规划管理 - 1 项目规划是预测未来,确定要达到的目标,估计会碰到的问题,并提出实现目标、解决问题的有效方案、方针、措施和手段的过程。( 摘自百度百科) 大家应该都看过不少美国大片,是否记得很多片子里,特别是偷…

进程控制块组织方式

进程控制块PCB的组织方式1)线性表方式:不论进程的状态如何,将所有的PCB连续地存放在内存的系统区。这种方式适用于系统中进程数目 不多的情况。2)索引表方式:该方式是线性表方式的改进,系统按照进…

android9叫什么名字,白猜这么多名字!谷歌Android 9.0正式发布:命名Android Pie

日前,谷歌对外公布了Android P的beta版,并向索尼Xperia XZ2、小米Mi Mix 2S、诺基亚7 Plus、Oppo R15 Pro、Vivo X21、一加6和Essential PH-1开放测试。今天,谷歌终于宣布正式发布Android 9.0的正式版本。据外媒GSMArena报道,今天…

静态链接与动态链接

静态链接是指把要调用的函数或者过程直接链接到可执行文件中,成为可执行文件的一部分。也就是函数和过程的代码就在程序的可执行文件中,可执行文件包含了运行时所需的全部代码。动态链接是指所调用的函数代码并没有被拷贝到应用程序的可执行文件中去&…

OpenCV 编程简介(矩阵/图像/视频的基本读写操作)

PS. 由于csdn博客文章长度有限制,本文有部分内容被截掉了。 在OpenCV中文网站的wiki上有可读性更好、并且是完整的版本,欢迎浏览。 OpenCV Wiki :《OpenCV 编程简介(矩阵/图像/视频的基本读写操作)》 Introduction to…

再送一波干货,测试2000线程并发下同时查询1000万条数据库表及索引优化

原文:再送一波干货,测试2000线程并发下同时查询1000万条数据库表及索引优化继上篇文章《绝对干货,教你4分钟插入1000万条数据到mysql数据库表,快快进来》发布后在博客园首页展示得到了挺多的阅读量,我这篇文章就是对上篇文章的千万…

同步机制遵循的原则

进程在并发执行时为了保证结果的可再现性,各进程执行序列必须加以限制以保证互斥地使用临界资源,相互合作完成任务。多个相关进程在执行次序上的协调称为进程同步。用于保证多个进程在执行次序上的协调关系的相应机制称为进程同步机制。 所有的进程同步机…

wps html编辑表格,WPS 2017个人版演示word使用技巧(wps2017表格使用技巧)

wps2017是一款非常深受用户喜爱的办公软件。在2017这个新的版本中,依旧继承了它之前兼容免费、体积小、多种界面切换、云办公等众多优秀的功能特点,下面小编就来教大家wps2017的使用方式使用技巧:一、wps2017个人版word使用技巧技巧一&#x…

ubuntu 解决“无法获得锁 /var/lib/dpkg/lock -open (11:资源暂时不可用)”的方法...

在ubuntu系统的termial下,用apt-get install 安装软件的时候,如果在未完成下载的情况下将terminal close。此时 apt-get进程可能没有结束。结果,如果再次运行apt-get install 命令安装如今,可能会发生下面的提示:无法获…

es Update API

2019独角兽企业重金招聘Python工程师标准>>> es Update API 博客分类: 搜索引擎,爬虫 The update API allows to update a document based on a script provided. The operation gets the document (collocated with the shard) from the ind…

聪明人,容易不务实

聪明人拥有很多优势。首先,聪明人的逻辑强、思路灵活,理解事物很快,因而经常很有创意。聪明人本身,也因为经常感觉到自己「快速理解、时有创意」的特质,认为没有什么事情难得倒他。渐渐的,在看待任何事物时…

Linux 线程占用CPU过高定位分析

今天朋友问我一个Linux程序CPU占用涨停了&#xff0c;该如何分析&#xff0c; CPU占用过高&#xff0c;模拟CPU占用过高的情况 先上一段代码&#xff1a; 1 #include <iostream>2 #include <thread>3 #include <vector>4 5 6 int main(int argc, char **argv…

计算机二级常备知识,2020年计算机二级Office考试必备题库资料!

考试资料在手&#xff0c;考试不用愁&#xff01;领报名界面显示计算机二级Office通过率仅21.07%&#xff0c;很多人认为是既费脑子又费时间的考试&#xff0c;可能是方法不对&#xff0c;导致花了很多时间还是考不过&#xff0c;刚刚收到3月考的二级证书啦&#xff0c;马上还有…

MR作业的提交监控、输入输出控制及特性使用

2019独角兽企业重金招聘Python工程师标准>>> MR作业的提交监控、输入输出控制及特性使用 博客分类&#xff1a; hadoop 提交作业并监控 JobClient是用户作业与JobTracker交互的主要接口&#xff0c;它提供了提交作业&#xff0c;跟踪作业进度、访问任务报告及logs、…

ACK和NAK

ACK 英文缩写: ACKnowledge Character在数据通信传输中&#xff0c;接收站发给发送站的一种传输控制字符。它表示确认发来的数据已经接受无误。 NAK 英文缩写: Negative Acknowledgment是否定应答或者非应答的缩写。它是一个用于数字通信中确认数据受到但是有小错误的信号。

http协议与web本质

当你在浏览器地址栏敲入“http://www.csdn.net/”&#xff0c;然后猛按回车&#xff0c;呈现在你面前的&#xff0c;将是csdn的首页了&#xff08;这真是废话&#xff0c;你会认为这是理所当然的&#xff09;。作为一个开发者&#xff0c;尤其是web开发人员&#xff0c;我想你有…