練炭ブログ

萌え壁紙、Irvine、DMonkey、Proxomitron などの情報を扱ってます。

ネタ

コメントなし»

ボーイスカウトやってた奴に有りがちなこと

【速報】ドリームハウスでまたとんでもない家が出来上がる これは酷いだろ・・・
24時間常時、寝室で吸気、浴室で排気していれば大丈夫……なのか?

「あんまり売れていないから」 アイドリング!!!の横山ルリカ、思わず泣き出す・・・ 「何が足りないんだろうね」 の問いに 「大人の力」

喪女板の『夜食食べたらageるスレ』に強者がいるwww

【全板集合】2chにある無駄な知識、画像を集めるスレ
ためになる知識が満載。

2ちゃんねるで伝説となっている画像は?

メイドカフェのハンバーグプレート1600円 ぼったくりすぎワロタ

教師「被災地では満足に給食が食べられないんです!」 子供の給食を一品減らして、浮いた金を義捐金に

【速報】 男の娘を連れたテロリストが法律事務所に立てこもり
なんだって!?

iPhone 5試作機紛失で家宅捜索した「警官」が実はアップル社員とか... : ギズモード・ジャパン

DMonkey: HTTP.length と HTTP.read().length の違い

コメントなし»

Irvine 1.3.1.127 & DMScript 0.3.12

var http = new HTTP ();
http.request ('GET', 'http://www.google.co.jp/favicon.ico');
http.response ();
var data = http.read();

var f = new File('test1234.ico');
f.open ('w');
f.write (data);
f.close ();

alert ("http.length = " + http.length
+ "\nhttp.read() length = " + data.length
+ "\nFile.write() length = " + f.length);

http.read() の返り値(string 型)の .length が小さいことがあるのは、データのバイト数ではなくマルチバイト文字列(Shift_JIS?)として解釈した場合の文字数だからのようです。

http.read().charCodeAt(~) も、マルチバイト文字だった場合 0x100 以上の値を返してきます。

読み込んだデータをバイト単位で読み書きしたい場合は StringBuffer 型に変換すればいいらしいです。