アプリのピュニコード対応(日本語ドメイン対応)した

はじめに

CopyTabTitleUrlをピュニコード対応しました。ピュニコード対応が予想外に簡単だったので記事にしておきます。

ピュニコード(Punycode)とは

日本語ドメインなどの国際化ドメイン名で使われている文字符号化方式です。詳しくは、次のサイトなどを参照して下さい。

ピュニコード対応

具体的な対応方法として、次のライブラリを使用します。


ライブラリの使用例を次に示します。

punycode.toUnicode('xn--wgv71a119e.jp');
//日本語.jp

punycode.toASCII('日本語.jp');
//xn--wgv71a119e.jp

var url = new URL('https://xn--wgv71a119e.jp/about/');
var ret = `${url.protocol}//`+punycode.toUnicode(url.hostname)+`${url.pathname}${url.search}${url.hash}`
//https://日本語.jp/about/

※punycode.jsは、コードの記載方法の関係でグローバル変数汚染してしまうため、コード書き換えて対処した方が良いです。