2011-04

スポンサーサイト

このエントリーをはてなブックマークに追加
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

JavaScript File APIについての覚書

このエントリーをはてなブックマークに追加
ご存知の方もいるかもしれませんが、HTML5になってFile APIというものがサポートされ、JavaScript上からのパソコン本体にあるファイルの読み書きが可能になりました。
残念ながらIE9ではサポートしないようですが。

で、今回、ファイルを読む部分についてちょっと書きたいと思います。
仕様書の一次情報源はなんといってもW3Cのドキュメントです。これを書いている時点で2010/10/26が最終更新日となっているので、まだ半年前です。

仕様変更の可能性もあるのですが、日本人にとって一番重要そうなテキストとして読み込む部分について。
W3Cのドキュメントでは次のように書いてます。

var reader = new FileReader();
// Read file into memory as UTF-16
reader.readAsText(readFile, "UTF-16");

reader.onprogress = updateProgress;
reader.onload = loaded;
reader.onerror = errorHandler;



ファイルを読む時はCのfreadの用にファイルが読み終わるまでブロックする形式ではなく、別途ファイルアップロード中とか読み終わった時等の関数を指定する形になっています。これにより、例えばファイルのアップロードの進捗状況なども動的にページに反映することなどが可能になってます。

ポイントはreadAsTextの第2引数に文字コードを指定出来るということです。
W3Cの解説では、IANACHARSETを指定せよ、ということです。ちなみに省略された時はUTF-8が指定されるようです。日本語がないファイルではこれで十分でしょう。

で、第2引数にsjisって書いてあるページがあって、確かにこれでも通るんですがIANACHARSETにはsjisなんて名前ないんですよね。mimeタグに書くcharsetもそうだけど、なにが正式名称なんでしょうか。IE4あたりが勝手に空気読んで文字コード解析したのが慣習になっちゃったんでしょうか。

あと、Editor's Draftってのがこの記事時点で3日前に出てまして、まだ変わる余地はあるようです。そういう意味ではIE9が実装を見送ったのはわからないでもないです。

次はファイルを書き込む当たりの話 File API:Writerを書きたいです。

«  | ホーム |  »

プロフィール

fantakeshi

Author:fantakeshi
Web:ここ
Twitter ID:fantakeshi
自作物やプログラムやまとまった技術的メモについて

RSSに追加

自作物

最新記事

Twitter

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

自作物 (26)
一般 (1)
将棋 (12)
BONANZA (1)
ponanza (1)
HTML5 (2)
Chrome (1)
WebAPI (1)
Webサイト (2)
プログラム (2)
Tips (1)

カウンター

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。