エンコード

Punycode encode/decode

Unicode 文字を含むドメイン名(IDN)を ASCII 互換の Punycode 形式(xn--)にエンコード、またはその逆にデコード。

The DNS system historically only supports ASCII characters, so domain names with Cyrillic, CJK, or other non-ASCII characters (IDN) are encoded as Punycode — an ASCII-compatible form prefixed with xn--. This tool encodes and decodes such domains.

How to use it

Common uses

Things to keep in mind

Visually similar characters from different scripts (like Cyrillic "а" and Latin "a") can form a domain that looks identical to a known brand — this is the basis of homograph phishing.

Not every browser shows decoded Unicode the same way: when a domain label mixes scripts, browsers often deliberately show the raw xn-- form as a warning sign.

このツールに関する記事: Punycode:国際化ドメイン名がDNSでどう動くか

よくある質問

Punycode とは何ですか?

ドメイン名で使えるのはASCII文字のみという制約の中で、日本語や絵文字などのUnicode文字を含む国際化ドメイン名(IDN)を表現するためのエンコード方式です。変換結果は必ずxn--というプレフィックスで始まります。

xn-- で始まるドメインを見たらどうすればいいですか?

それはPunycodeでエンコードされた国際化ドメインです。ブラウザは通常これを元のUnicode表記で表示しますが、見た目がそっくりな別の文字(ホモグラフ)を使ったなりすましドメインである可能性もあるため、心当たりのないリンクでは注意が必要です。

入力したドメイン名は外部に送信されますか?

いいえ、エンコード・デコードの処理はブラウザ内のJavaScriptだけで完結しており、入力したドメイン名がどこかに問い合わせられたり送信されたりすることはありません。

リンクがPunycodeを使っていることをどう見分ければいいですか?

エンコードされたドメインは、非ASCII文字を含む各ラベルの前に必ずxn--というプレフィックスが付きます。アドレスバーやメール内でxn--から始まるドメインを見かけたら、それはIDNの兆候なので、エンコードの裏にどんなテキストが隠れているか確認する価値があります。

すべてのブラウザがアドレスバーでキリル文字を同じように表示しますか?

いいえ。多くのブラウザは、ドメインのすべての文字が単一の文字体系に属している場合にのみデコードされたUnicodeを表示し、複数の文字体系が混在している場合(ホモグラフ攻撃の兆候)は、意図的に元の文字ではなく生のxn--表記を表示します。

記事: エンコード

Base64とは何か、なぜ必要で、どう動くのか

Base64がバイナリデータをASCIIテキストにどう変換するか、実際にいつ必要になるか。

Base32:Base64との違いと、どんな場面で便利か

大文字小文字を区別しないBase32のアルファベットと、Base64より便利な場面。

URL Encode/Decode:リンクにおけるパーセントエンコーディング

アドレスやパラメータ中の特殊文字が%XXの並びに変わる仕組み。

HTML Entities:特殊文字を安全に表示する方法

< > &をエスケープすべき理由と、それがマークアップの破損をどう防ぐか。

JWT:トークンの構造と「デコード」の意味

JWTのheader、payload、signatureと、デコードが署名検証と同じでない理由。

Unicode Escape:\uXXXX形式が意味するもの

JSONやJS文字列に現れる\u0041のようなシーケンスがどこから来て何を意味するか。

ROT13とシーザー暗号:単純な文字の置き換え

13文字分のシフトがROT13を自己反転にする理由と、今なお使われる理由。

モールス符号:テキストが点と線に変わる仕組み

文字を点と線でエンコードする原理と、モールス符号が今どこで使われているか。

Data URI:画像をコードに直接埋め込むべき場面

Data URIがファイルの内容をHTMLやCSSに直接埋め込む仕組みと、それが有効な場面。

Gzip + Base64:テキストとして送るためのデータ圧縮

圧縮されたバイナリデータをテキストフィールドに入れる前にBase64でもエンコードする理由。

XML Entities:XML文書内の文字をエスケープする

これがないと解析時に文書が壊れる、XMLの5つの必須エンティティ。