この記事は最終更新日から1年以上が経過しています。
Punycode変換とは
JPRSやJPNICに詳しく記載されていますが、簡単に言うとascii以外の文字もDNSで扱えるようにする仕組みのことで、これにより日本語ドメインなんかも使えるっていうことなんですね。
ブラウザによって異なる挙動
この仕組みのせいで
inputタグで
typeを
emailにした場合、ブラウザによって取得できる値が異なってしまうので注意が必要です。
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> |
この記事を書いた人
最近書いた記事
- 2018.10.12PostmanでXMLレスポンスのテストを書く
- 2018.07.26モブプログラミング(Mob programming)で開発やってみた
- 2017.12.15RecoChoku Tech Night #6 で海外音楽とITについてお話ししました
- 2017.12.08【re:Invent 2017】Netflixのセッションを聞いてきました