���٤ϡ�JavaScript�ǡ�
�ǥ�
�ʲ��Υե�����ɤ�����Ѵ��Ǥ���褦�ˤʤäƤ��ޤ���
����encodeURIComponent()���Ƥ��ޤ��Ǥȡ������ܸ�URL�Ѵ��ġ��� �� �ԥ�˥�����(Punycode)��UTF-8�ʤɤΥ��󥳡��ɤ��פΤ褦�ˡ�URI��ASCII���פ��������Ǥ�ξ������ޤ���
Decoded: | |
Encoded: | |
Ascii-fied: | |
�ƥ����ѤΥ��
- http://���ܸ�.jp/��/��?a=��
- http://xn--wgv71a119e.jp/%E3%82%AB/%E3%81%B2?a=%E6%BC%A2
������
��Punycode�Ѵ��Υ����ɤ�񤤤Ƥߤޤ��� - Opera����˺Ͽ�Τڤ��� - �����ಶ���פ�punycode.js��Ȥ碌�Ƥ��������ޤ������������Ǥ��ʤꥷ��ץ�Ǥ����ǡ�punycode.js�˥ޥ��ʡ��Х��򸫤Ĥ����ΤǤ���𡣱ѿ���������ʸ����������ȡ�����;�פ�-
���դ��ޤ�����entry��script�ؤαƶ��Ϥ���ޤ���punycode�������פʾ��Ϥ��äȤФ��褦�ˤʤäƤ���Τǡ�
var re_fullstop = new RegExp( '[\u002E\u0589\u06D4\u0701\u0702\u1362\u166E\u1803' + '\u1809\u2CF9\u2CFE\u3002\uFE12\uFE52\uFF0E\uFF61]' ); decodeIDN = function(str){ return str.replace(/xn--([0-9a-z\-]+)/g, function(m0, m1){ return Punycode.decode(m1); }); }; encodeIDN = function(str){ var words = str.toLowerCase().split(re_fullstop); for (var i = 0, l = words.length; i < l; i++){ if (! words[i].match(/[^0-9a-z\-]/)) continue; words[i] = 'xn--' + Punycode.encode(words[i]); } return words.join('.'); }; decodeURIComponentIDN = function(uri){ return decodeURIComponent(uri).replace(/\:\/\/([^\/]+)/, function(m0,m1){ return '://' + decodeIDN(m1); }); }; encodeURIComponentIDN = function(str){ return encodeURIComponent(str.replace(/\:\/\/([^\/]+)/, function(m0,m1){ return '://' + encodeIDN(m1); })); }; unicodeToURI = function(str){ return str.replace(/\:\/\/([^\/]+)/, function(m0,m1){ return '://' + encodeIDN(m1); }).replace(/[^A-Za-z0-9_\;\/\?\:\@\&\=\+\$\,\[\]\-_\.\!\~\*\(\)]+/g, function(m0){ return encodeURIComponent(m0); }); };
Enjoy!
Dan the Man with too Many Encodings to Support
��äơ��֤ɤ�ʥۥ���̾�Ǥ�Ȥꤢ�����Ѵ����Ȥ��פȤ����櫓�ˤϹԤ��ʤ��ʤ�ޤ����ɡ������դ��Ƚ��� punycode.js ����ʬ�ǤϤʤ��ȹͤ��Ƥ��ޤ�(���ΤȤ�����)��