FC2ブログ

スポンサーサイト

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

[Google App Engine for Python]静的なテキストファイルの文字コードを指定する

昨日、積み上げ棒グラフを表示するJavaScriptライブラリを公開したのだが、ReadmeをテキストファイルとしてGAEにアップした。
ReadmeはUTF-8で記述したので、文字コードを指定しないと、ブラウザによっては文字化けしてしまう。
GAE/Pで静的なテキストファイルの文字コードを指定する方法を調べたので、忘れないうちに書いておく。

プログラムの出力であれば response.headers['Content-Type'] で文字コードを設定すればいいのだが、静的ファイルの場合はapp.yamlで文字コードを指定する。
  - url: /txt
    static_dir: txt
    mime_type: text/plain; charset=UTF-8
とapp.yamlに記述すれば、/txt以下のファイルに対して、HTTPレスポンスヘッダーに Content-Type text/plain; charset=UTF-8 が付加される。
拡張子にかかわらず、対象となる全てのファイルのHTTPレスポンスヘッダーに付加されるので注意。

static_dirではなく、static_filesを指定することで、対象となるファイルを正規表現で指定できる。
  - url: /fordl/(.+\.txt)
    static_files: fordl/\1
    upload: fordl/(.+\.txt)
    mime_type: text/plain; charset=UTF-8
  - url: /fordl
    static_dir: fordl
こうすれば、/fordl以下の.txtのみ、HTTPレスポンスヘッダーに Content-Type text/plain; charset=UTF-8 が付加される。
URLは上から順に評価されるため、記述順序に注意。

文字コードを考慮してファイル名をつければ、異なる文字コードのファイルを混在させることも可能。
  - url: /fordl/(.*utf.*\.txt)
    static_files: fordl/\1
    upload: fordl/(.*utf.*\.txt)
    mime_type: text/plain; charset=UTF-8
  - url: /fordl/(.*sjis\.txt)
    static_files: fordl/\1
    upload: fordl/(.*sjis\.txt)
    mime_type: text/plain; charset=Shift_JIS
  - url: /fordl
    static_dir: fordl

以上。
スポンサーサイト

コメント

コメントの投稿

非公開コメント

プロフィール

himax64

Author: 南西
30代後半の無職です。
就活もせずダラダラ生きてます。
作ったもの

最新記事
人気記事
検索フォーム
カテゴリ
月別アーカイブ
最新コメント
最新トラックバック
RSSリンクの表示
QRコード
QRコード
カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。