MacIE5でdecodeURIを実装
MacIE5でdecodeURI()が必要になったんで、作ったけど、これでいいのかな。
if (typeof decodeURI != 'function') {
decodeURI = function (s) {
// via http://homepage3.nifty.com/aokura/jscript/utf8.html
var _from_utf8 = function(s) {
var c, d = "", flag = 0, tmp;
for (var i = 0; i < s.length; i++) {
c = s.charCodeAt(i);
if (flag == 0) {
if ((c & 0xe0) == 0xe0) {
flag = 2;
tmp = (c & 0x0f) << 12;
} else if ((c & 0xc0) == 0xc0) {
flag = 1;
tmp = (c & 0x1f) << 6;
} else if ((c & 0x80) == 0) {
d += s.charAt(i);
} else {
flag = 0;
}
} else if (flag == 1) {
flag = 0;
d += String.fromCharCode(tmp | (c & 0x3f));
} else if (flag == 2) {
flag = 3;
tmp |= (c & 0x3f) << 6;
} else if (flag == 3) {
flag = 0;
d += String.fromCharCode(tmp | (c & 0x3f));
} else {
flag = 0;
}
}
return d;
}
return _from_utf8(unescape(s));
}
decodeURIComponent = decodeURI;
}
使うときは普通に
alert(decodeURI('%E3%81%BF%E3%82%93%E3%81%AA%E3%82%A8%E3%83%AD%E3%82%A4%E3%81%AD') );
でつかえますー
TransURI (UTF-8) [nurucom-archives.hp.infoseek.co.jp] ていうのもあるけれども、正規表現の中に無名関数を住まわせるタイプの置換はMacIE5のJavaScriptじゃあサポートされていなく悲しい結果になるので、Unicode ⇔ UTF-8 - by AOK [homepage3.nifty.com] を使いまして、ブラウザにビルトインで用意されている場合は上書きしないようにしてみた。
JavaScriptはよくわかんないなー
トラックバック
この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/19018/17130198
この記事へのトラックバック一覧です: MacIE5でdecodeURIを実装:
» MacIE5でArray.pushを実装
from M.C.P.C.
MacIE5でArray.pushが必要になったんで、作りました。以下のコードをJavaScriptのコードに入れておくと、Arrayオブジェクトにpushメソッドが追加されます。pushメソッドが既にある場合は、上書きしません。 // Array.pushをMacIE5に実装 if (typeof Array.prototype.push != 'function') { Array.prototype.push = function (f){ this[this.length] = f; } }... 続きを読む
受信: 2008/09/01 18:13:08





![森田 創: WEB+DB PRESS 総集編 [Vol.1~60]](http://ecx.images-amazon.com/images/I/51aE58LxWlL._SL75_.jpg)
















![: 電子ルーペ ViewPe[ビューペ] 3R-MSV35 マイクロスコープ デジタル顕微鏡 高機能 低価格 読書 植物 研究 肌チェック](http://ecx.images-amazon.com/images/I/41erkiQgAsL._SL75_.jpg)





![: Optimus bright [docomo L-07C] 対応 予備バッテリー 1500mAh BL-44JN](http://ecx.images-amazon.com/images/I/41gjqsDjq%2BL._SL75_.jpg)










![: パンツの穴 [DVD]](http://ecx.images-amazon.com/images/I/21R9SEY1HPL._SL75_.jpg)

















