| « b2evolution 1.10.2 | PHP 5.2.1 » |
b2evolution 1.9.3
ここのブログで利用しているb2evolutionというブログツールが
ということなので、アップグレード。
1.9.2のバージョンに更新した時、IE等のブラウザで閲覧した場合は問題なかったのだが、何故かFirefoxで閲覧した場合、ゲストユーザ(一般ユーザ)になって、ここのブログを閲覧すると文字化けして読めなくなっていた。
一応、応急措置として、conf/_locale.phpを
$force_io_charset_if_accepted = 'UTF-8';
と直して、こちらの環境では問題は解決したように見えたのだが、その後も、Firefoxだと文字化けするとのコメントをいくつか頂いていた。
こちらの環境では、FirefoxのPreferenceから、Content→Advancedのダイアログで、Default Character EncodingをUTF-8に設定していた。
これだと、
| HTTP_ACCEPT_CHARSET | UTF-8,* |
|---|
として、リクエストヘッダがサーバ側に送られるようです。
しかし、Firefoxのデフォルトの設定では、
| HTTP_ACCEPT_CHARSET | ISO-8859-1,utf-8;q=0.7,*;q=0.7 |
|---|
となっている。
b2evolutionはクライアントに応じて出力する文字を切替えてくれるらしいのだが、どうやら、UTF-8
とutf-8
の大文字と小文字の違いを処理できずに問題が生じていた模様・・。
とりあえず、conf/_locale.phpは、
$force_io_charset_if_accepted = 'utf-8';
としておき、ケースの違いで問題が起こらないように、
--- inc/MODEL/settings/_locale.funcs.php~ Sat Mar 10 23:15:16 2007
+++ inc/MODEL/settings/_locale.funcs.php Wed Apr 4 21:43:40 2007
@@ -869,7 +869,7 @@
if( ! empty($force_io_charset_if_accepted) )
{ // we want to force a specific charset:
if( ! isset($_SERVER['HTTP_ACCEPT_CHARSET']) // all allowed
- || preg_match( '~\b(\*|'.$force_io_charset_if_accepted.')\b~', $_SERVER['HTTP_ACCEPT_CHARSET'] ) )
+ || preg_match( '~\b(\*|'.$force_io_charset_if_accepted.')\b~i', $_SERVER['HTTP_ACCEPT_CHARSET'] ) )
{
$req_io_charset = $force_io_charset_if_accepted; // pretend that the first one has been requested
}
として見ることにする。
Trackback address for this post
Trackback URL (right click and copy shortcut/link location)
Feedback awaiting moderation
This post has 27 feedbacks awaiting moderation...