目次

目次

Punycode(ピュニコード)変換って知ってますか?

アバター画像
酒井 修平
アバター画像
酒井 修平
最終更新日2017/09/28 投稿日2017/09/28

Punycode変換とは

JPRSJPNICに詳しく記載されていますが、簡単に言うとascii以外の文字もDNSで扱えるようにする仕組みのことで、これにより日本語ドメインなんかも使えるっていうことなんですね。

ブラウザによって異なる挙動

この仕組みのせいで inputタグでtypeemailにした場合、ブラウザによって取得できる値が異なってしまうので注意が必要です。 IEやFirefoxは入力した値がそのまま取れますが、chromeはドメインがPunycode変換された値になってしまいます。

実際にどのように変換されるか、簡単なサンプルを作成しましたので試してみてください。 コードはこのような↓感じです。

<html>
<head>
  <meta charset="UTF-8">
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <script type="text/javascript" language="javascript">
  function typeemail() {
    confirm(document.getElementById('email').value);
  }
  function typetext() {
    confirm(document.getElementById('text').value);
  }
  </script>
</head>
<body>
  <div>
    <input type="email" id="email">
    <input type="button" onclick="typeemail()" value="ピュニコード変換あり">
  </div>
  <div>
    <input type="text" id="text">
    <input type="button" onclick="typetext()" value="ピュニコード変換なし">
  </div>
</body>
</html>
アバター画像

酒井 修平

目次