跳到主要内容
uencoder

Punycode

Punycode 是一种将 Unicode 字符串(国际化域名 IDN)转换为 ASCII 兼容字符串的编码,输出以 xn-- 前缀标识。

用途

使非拉丁字符的域名能在仅支持 ASCII 的 DNS 基础设施中解析,同时保持与现有系统的兼容。

机制

将输入 Unicode 码点序列中所有基本 ASCII 字符原样保留,非 ASCII 码点通过广义变量整数编码追加到末尾,用分隔符与插入位置信息恢复顺序。输出全部为 ASCII 小写字母数字与连字符。

用例

  • 国际化域名(如 例え.テスト → xn--r8jz45g...)
  • IDN 注册与解析
  • Email 地址国际化(SMTPUTF8 回退)
  • DNS 软件兼容层

示例

  • 输入
    münchen
    输出
    xn--mnchen-3ya

    Encoding a German city name

常见错误

Skipping homograph attack checks for IDN names
Use ICU to detect suspicious mixed scripts before rendering

相关词条

相关工具

参考链接