コンテンツへスキップ
uencoder

Punycode

Punycodeは、Unicode文字列(国際化ドメイン名)をASCII互換の文字列へ変換するエンコーディングで、出力には xn-- プレフィックスが付く。

目的

非ラテン文字のドメイン名を、ASCIIのみのDNS基盤で解決できるようにし、既存システムとの互換性を保つ。

メカニズム

入力内の基本ASCII符号点はその場に保持され、非ASCII符号点は汎用可変長整数エンコーディングで末尾に追加される。デリミタと挿入位置で順序が復元される。出力は小文字のASCII英数字とハイフンのみで構成される。

ユースケース

  • 国際化ドメイン名(例:日本語ドメインが xn--r8jz45g.xn--zckzah に符号化)
  • IDNの登録と解決
  • 国際化メールアドレス(SMTPUTF8フォールバック)
  • DNSソフトウェアの互換レイヤー

例

  • 入力
    münchen
    Output
    xn--mnchen-3ya

    Encoding a German city name

よくあるエラー

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

関連用語

関連ツール

References