IDN安全提示: 国际化域名可能存在同形异义字攻击,请在输入敏感信息前仔细验证域名。所有数据均在本地处理,不会上传。
Punycode转换工具
Punycode 2.1.0
当前操作:IDN域名 → Punycode编码 (完整域名)
输入国际化域名
字符数: 0
标签数: 0
状态: 等待输入
Punycode编码结果
转换结果将显示在这里...
等待输入...
长度: 0
使用示例
"例子.测试" → Punycode
xn--fsq270a.xn--0zwm56d
"россия.рф" → Punycode
xn--h1alffa9f.xn--p1ai
"例え" → Punycode
xn--r8jz87g
Punycode解码
xn--fsq270a.xn--0zwm56d → 例子.测试
Punycode算法原理
Punycode是一种将Unicode字符串转换为仅含ASCII字符的编码方式,定义于RFC 3492,主要用于国际化域名(IDN)。编码后的域名以xn--开头。
示例: "例子" → Unicode码点: 20363, 23376 → Punycode: fsq270a → 加上前缀: xn--fsq270a
编码步骤
- 分离ASCII字符和非ASCII字符(保留ASCII部分)
- 将非ASCII字符序列转换为Bootstring编码(Punycode核心)
- 若存在非ASCII部分,添加"xn--"前缀
- 最终域名由ASCII部分(如果有)和"xn--"前缀+编码部分组成
国际化域名示例
中文
例子.测试 → xn--fsq270a.xn--0zwm56d
日本語
例え.みんな → xn--r8jz87g.xn--q9jyb4c
عربي
مثال.شبكة → xn--mgbh0fb.xn--ngbc5azd
Русский
пример.рф → xn--e1afmkfd.xn--p1ai
同形异义字攻击: 不同语言的字符可能外观相似(如西里尔字母“а”和拉丁“a”),现代浏览器会以Punycode形式显示可疑域名。