読み書きプログラミング

日常のプログラミングで気づいたことを綴っています

DropboxのPublicフォルダのcharset

新規ユーザーには提供されなくなったDropboxのPublicフォルダに関するマイナーな情報です。

Dropboxのウェブサーバーは、Publicフォルダのテキストファイルのエンコードを自動判別して、HTTPレスポンスヘッダに付けます。至れり尽くせりですね。
で、国際化したページを作ると、ページ本体がasciiと判別されてcharset=asciiで送られます。
この後、JavaScriptUTF-8の文字を書き込んでも、HTTPヘッダを最優先する(HTML 4.01仕様)ブラウザではページのcharsetはasciiですから、文字化けします。
(仕様に忠実なブラウザはFireFoxです。Chrome/Safariはファイル内のmeta charsetを優先します。)
ファイルの中に、エンコードが識別できる文字が入っていれば、文字化けは起こりません。

教訓:
DropboxのPublicフォルダで、国際化対応ページを作る時には、UTF-8を使い、そのページの中にUTF-8の文字を何らかの形で入れておきましょう。