スポンサーサイト

0

    一定期間更新がないため広告を表示しています


    • 2014.12.23 Tuesday
    • -
    • -
    • -
    • -
    • -
    • by スポンサードリンク

    携帯サイト開発者はdjangoのunicodeブランチを入れると幸せになれるかも♪(DBと違う文字コードでサイト公開@django)

    0
      以前、djangoでUTF-8以外の文字コードでサイト公開と題して、UTF-8でDBから読み出しした文字を表示直前にSJISに変換するフィルタを公開しましたが、最新SVN版に含まれるようになったUnicode機能?を使うとこのフィルタが不要になるようです。

      先日偶々svn upしてプチはまりした鯖(django管理画面でUnicodeErrorでまくり参照)、実は携帯サイト用のテストサイトを置いていた鯖(↑↑のフィルタを試した鯖)でもあったのですw

      で。案の定(?)携帯表示テスト用サイトでもエラーが出ていて…
      内容が「テンプレートをロードしたけど、UTF-8コーデックで読めないよ!」でした。
      前回のエントリーでは、
      ・テンプレ→SJISで書く
      ・DB→UTF-8
      ・テンプレに渡す変数→テンプレ内でSJISに変換
      と面倒な処理をフィルタ作ってやらせてましたが、どうやら「テンプレ→SJIS」の部分がひっかかったご様子。

      私はろくにドキュメントも読まずに「まずやってみる」主義なので(爆)、「これはもしかして、テンプレをUTF-8で書いておけば、settings.pyに指定したCHARSETにdjangoが自動変換してくれるってこと??」と期待して、テンプレのエンコーディングをSJIS→UTF-8変更しました(extends使って拡張しまくってるのでファイル数多くてなかなか大変)。

      ドキドキしながら見てみると…
      おお!SJISで表示OK!(携帯からも確認。)

      結論。
      Unicodeブランチありのdjangoを使っている場合に、違うエンコーディングでサイト公開したい場合の解決法。
      ■settings.py→DEFAULT_CHARSET='sjis'を入れる
      ■テンプレ→UTF-8で書く。前回のフィルタは不要。但し、metaタグでエンコーディング指定をする場合は忘れずにshift_jisを指定。(テンプレのプレビューをブラウザで事前にする人は要注意)
      だけでいいみたいです。

      おおーぐっと楽になるぞー。
      Unicode入れちゃって後悔してたけど、良いこともありました^^
      他の鯖も早めにmodelを修正して最新版にsvn upしちゃおうかなー(オイオイ
      #人柱になるのが好きな奴だな、私w


      スポンサーサイト

      0

        • 2014.12.23 Tuesday
        • -
        • 12:05
        • -
        • -
        • -
        • -
        • by スポンサードリンク

        コメント
        コメントする








           
        この記事のトラックバックURL
        トラックバック

        PR

        calendar

        S M T W T F S
             12
        3456789
        10111213141516
        17181920212223
        24252627282930
        << September 2017 >>

        twitter

        selected entries

        categories

        archives

        recent comment

        • 結局CodeIgniter用汎用Modelクラス&汎用CRUDスクリプトを書きました
          プログラマー
        • icu4.4以上が用意できないサーバーでSymfony2.3以上を使う方法
          よし
        • icu4.4以上が用意できないサーバーでSymfony2.3以上を使う方法
          ななうぇぶ
        • icu4.4以上が用意できないサーバーでSymfony2.3以上を使う方法
          よし
        • icu4.4以上が用意できないサーバーでSymfony2.3以上を使う方法
          よし
        • WindowsのPCで開発するphperがxhprofを使う方法
          ななうぇぶ
        • WindowsのPCで開発するphperがxhprofを使う方法
          川本
        • [バッドノウハウ]Symfony2で別テーブルの集計項目を一覧に含めたいとき
          よし
        • Symfony Advent Calendar JP 2012 day 14 - vendorをcomposerで管理しているプロジェクトにcomposerを使わずにバンドルを追加したときのautoloadの書き方
          77web
        • Symfony Advent Calendar JP 2012 day 14 - vendorをcomposerで管理しているプロジェクトにcomposerを使わずにバンドルを追加したときのautoloadの書き方
          ktz

        recent trackback

        • HTMLの表(TABLE)のセル(TD)に斜線を引くjavascriptライブラリ slash.js 作っちゃいました
          常山日記
        • django対symfony 日本語メール送信(その1 symfony編)
          CPA-LABテクニカル
        • CodeIgniterでユーザー認証
          されどLAMPな日々
        • 久々にdjangoを最新版にしたらHTMLがエスケープされちゃった!!(解決済み)
          常山日記
        • FastCGIを諦めてmod_pythonを使う。Apacheのアップグレード
          サーバー用語集
        • さくらインターネット、sqlite3でdjango@CGI版を使う際の設定メモ
          常山日記
        • さくらインターネット スタンダードプランでdjango使ってる方、DBは?
          mitszoの日記
        • python多次元リストをsort(並べ替え)する方法?
          mitszoの日記
        • フォームから送信した値とrequest.POSTの挙動($_POST@PHPとの比較)
          Humming Via Kitchen
        • 日本語テキストをtruncate@django(Python全般にも??)
          常山日記

        recommend

        links

        profile

        search this site.

        others

        mobile

        qrcode

        powered

        無料ブログ作成サービス JUGEM