JAvascriptで文字を符号化する
1616 ワード
JAvascriptには、escape()、encodeURI()、およびencodeURIComponent()というURL文字列を符号化する方法がいくつかあります.これらのいくつかの符号化が果たす役割はそれぞれ異なる.
●escape()メソッド
指定した文字列をISO Latin文字セットで符号化します.すべてのスペース記号、句読点、特殊文字、およびその他の非ASCII文字は、%XX形式の文字符号化に変換されます(XXは、文字セットテーブル内の文字の符号化の16進数に等しい).たとえば、スペース記号に対応する符号化は%20です.このメソッドで符号化されない文字:@*/+
●encodeURI()メソッド
URI文字列をUTF-8符号化形式でescape形式の文字列に変換する.この方法は主にアドレスバーのURLを符号化するので,アドレスバーに用いられる文字は符号化されない.このメソッドで符号化されない文字:!@#$&*( ) = :/; ? + '
●encodeURIComponent()メソッド
URI文字列をUTF-8符号化形式でescape形式の文字列に変換する.この方法は、encodeURI()に比べて、/などの文字など、より多くの文字を符号化する.したがって文字列にURIのいくつかの部分が含まれている場合、この方法で符号化することはできません.そうしないと、/文字が符号化された後にURLにエラーが表示されます.
●escape()メソッド
指定した文字列をISO Latin文字セットで符号化します.すべてのスペース記号、句読点、特殊文字、およびその他の非ASCII文字は、%XX形式の文字符号化に変換されます(XXは、文字セットテーブル内の文字の符号化の16進数に等しい).たとえば、スペース記号に対応する符号化は%20です.このメソッドで符号化されない文字:@*/+
/**
* , 。 。 URL ,URL dot, dot ( : , )。 :/@*+I%20am%20Chinese%2C.%u6211
*/
var s = "/@*+I am Chinese,. ";
document.write(s);
●encodeURI()メソッド
URI文字列をUTF-8符号化形式でescape形式の文字列に変換する.この方法は主にアドレスバーのURLを符号化するので,アドレスバーに用いられる文字は符号化されない.このメソッドで符号化されない文字:!@#$&*( ) = :/; ? + '
/**
* 。
* :http://www.baidu.com/?id=12&key=%E5%8C%97%E4%BA%AC%E4%B8%A4%E4%BC%9A&money=$12
*/
var loc = "http://www.baidu.com?id=12&key= &money=$12";
window.location = encodeURI(loc);
●encodeURIComponent()メソッド
URI文字列をUTF-8符号化形式でescape形式の文字列に変換する.この方法は、encodeURI()に比べて、/などの文字など、より多くの文字を符号化する.したがって文字列にURIのいくつかの部分が含まれている場合、この方法で符号化することはできません.そうしないと、/文字が符号化された後にURLにエラーが表示されます.
/**
* "/", URL URL
* :http%3A%2F%2Fwww.baidu.com%3Fid%3D12%26key%3D%E5%8C%97%E4%BA%AC%E4%B8%A4%E4%BC%9A%26money%3D%2412
*/
var loc = "http://www.baidu.com?id=12&key= &money=$12";
document.write(encodeURIComponent(loc));