- ソースコード全体をUTF-8化
-- 但し、日本語のソースコードコメントはそのまま
+-- [Breaking B.C] フレームワークで扱う内部エンコーディング(mb_internal_encoding)もUTF-8に変更。但し、これは Ethna_Controller#_getDefaultLanguage
+ をオーバーライドし、クライアントエンコーディングの値を変えることで変更可能です。
- 国際化 (i18n) のための機能追加および変更
-- [Breaking B.C] 言語名として解釈していた部分をロケール名に変更
--- これにより、[appid]template/ja, [appid]/locale/ja の「ja」の部分が ja_JP に置き換わります。よって、古いバージョンから移行する場合はディレクトリ名の変更が必要です。
}
}
+ //
// 初期設定
+ // フレームワークとしての内部エンコーディングはクライアント
+ // エンコーディング(=ブラウザからのエンコーディング)
+ //
+ // @see Ethna_Controller#_getDefaultLanguage
+ //
list($this->locale, $this->system_encoding, $this->client_encoding) = $this->_getDefaultLanguage();
+ mb_internal_encoding($this->client_encoding);
$this->config =& $this->getConfig();
$this->dsn = $this->_prepareDSN();
* クライアントエンコーディング名
* (= テンプレートのエンコーディングと考えてよい) の配列
* (ロケール名は ll_cc の形式。ll = 言語コード cc = 国コード)
+ *
+ * CAVEAT!!: クライアントエンコーディング名が、フレームワークの内部エンコーデ
+ * ィングとして設定されます。つまり、クライアントエンコーディングで
+ * ブラウザからの入力は入ってくるものと想定しています!
*/
function _getDefaultLanguage()
{