機能要望 > その他 > UTF-8でお知らせの文字化け修正 |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
nanasess |
投稿日時: 2007/4/24 17:05
対応状況: −−−
|
神 登録日: 2006/9/9 居住地: 投稿: 2313 |
Re: UTF-8でお知らせの文字化け修正 大河内です.
ちょっと現実逃避に, mbstring.c のソースをざっと見てみました. ramrun さんのおっしゃる通り, --enable-zend-multibyte が有効になってないと, mbstring.script_encoding は有効になりません. 従って, null となるようです. この場合, mbstring.internal_encoding と ファイルエンコーディングは同様とみなされるようです. エンコーディング変換が行われるのは, スクリプトを読み込む際なので,php.ini で mbstring.internal_encoding = EUC-JP だと, ファイルエンコーディングが UTF-8 なのにもかかわらず, EUC-JP だと仮定して読み込み, 内部(ini_set が実行されるタイミング)で UTF-8 に変換されます. ここでエンコーディングのミスマッチが発生していたと思われます. ramrun さんの環境なら, mbstring.encoding_translation = off の対応で良さそうですが, やはりモバイル版の方で何らかの対応は必要になると思います. (http_input が SJIS-win に強制されるため) また, PHPが想定しないような設定だと思われますので, あまり気持ちの良いものではないかもしれませんね. モバイル版でしたら, Firefox に User Agent Switcher を入れて User-Agentを偽装して確認もできるので, 買い換えにご無理なさらなくても大丈夫かと ^^; php.ini の設定が EUC-JP で, ini_set で動的に UTF-8 に設定されているのが問題だと思いますので, ini_set で動的に設定せずに, php.ini または, .htaccess で設定してやれば問題ないと思います. # これを PHP の開発チームに報告するべきか否か... # 報告したとしても, バグとしてではなく, 「ちゃんと設定して」って言われそう... ちなみに, --enable-mbstr-enc-trans は, PHP4.3.0 以降は常に On のようです. ramrun さんの環境でしたら, --enable-zend-multibyte を有効にしなくても, 今のままの configure option で良さそうな感じですね. |
ramrun |
投稿日時: 2007/4/26 0:13
対応状況: −−−
|
仙人 登録日: 2006/11/3 居住地: 投稿: 789 |
Re: UTF-8でお知らせの文字化け修正 ながらくお付き合いいただき、ありがとうございました。
おかげさまで謎が解けました。 とりあえず.htaccessでやっておこうと思います。 人様のサイトですが、UTF-8の記事を書かれたようなので、参考に貼らせていただきます。 つぶやき。もしくは独り言。 http://shizuki.kinezumi.net/NucleusCMS/item_475.html |
« 1 (2) |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |