UTF-8で文字化けします

16 views
Skip to first unread message

もじさん

unread,
Nov 6, 2008, 9:25:05 AM11/6/08
to SitedevAT
はじめまして。
 最近、SiteDev+ATを知り、XAMMPのローカル環境で勉強中です。
pukiwiki の良い点を生かし、サイトを簡単に作ることが出来るすばらしいシステムと感じています。

 ところで表題の件ですが、
「簡単CMS SiteDev+ATの秘密」 13号 を読み、[sitedev.ini.php]の

 define('DISP_CODE', 'EUC-JP');
を、
 define('DISP_CODE', 'UTF-8');

と変更したところ、文字化けが起こりました。

 利用環境は、最新版(2008-07-16) を XAMPP(xampp-win32-1.6.8)で試用中です。


 旧掲示板を見たところ、同様の話題がありましたが、解決していなかったのでしょうか?

取りあえず、掲示板の
11階層
 lib/html.php の 37行目
 global $disp_code;


第6層の回答を元に、
[skin/sitedev.skin.php]

//echo $sk->gettext();
echo mb_convert_encoding($sk->gettext(), $disp_code,"auto");

 "auto" を "EUC-JP" としたところ、 UTF-8 で表示できるようになりました。

 現時点では、この措置で問題なく動作しておりますので、急いでおりません。
もしかしたら、見落としている情報があるかもしれませんが、
原因や対策などございましたらお教えくださいますようお願いいたします。

akk...@gmail.com

unread,
Nov 6, 2008, 7:07:59 PM11/6/08
to SitedevAT

mb_convert_encoding についてですが
php.iniの設定にも関係しています。

参考 URL
http://kawama.jp/archives/2006/05/mb_convert_enco_1.html

一部のレンタルサーバーでも'auto'でうまく変換できないことがありました。

mb_convert_encoding($sk->gettext(),$disp_code,"ASCII,JIS,UTF-8,EUC-
JP,SJIS");

のように明確に変換順序を書く方法で解決したこともあります....

しかしながら、 Sitedev+AT は、内部コード EUC-JP なんで(現在のところ)
もじさん の 設定のように EUC-JP と直接かかれてもかまいません。

pukiwiki に習って UTF-8 のバージョンを作ろうとしていた時期がありまして
内部コードがなんでもいけるように 'auto'を使った記憶が かすかにあります。

もじさん

unread,
Nov 10, 2008, 10:12:02 AM11/10/08
to SitedevAT
AKKO 様
ご回答ありがとうございます。
お礼が送れたことをお詫び申し上げます。

> mb_convert_encoding についてですが
> php.iniの設定にも関係しています。
>
> 参考 URLhttp://kawama.jp/archives/2006/05/mb_convert_enco_1.html

 このURLを参考に、xampp\apache\bin\php.ini の
mbstring.detect_order = auto のコメントアウトを外しましたが、
私の環境では、文字化けは改善しませんでした。

アドバイスに従い、 skin/sitedev.skin.php の
echo mb_convert_encoding($sk->gettext(), $disp_code,"auto");

echo mb_convert_encoding($sk->gettext(),
$disp_code,"ASCII,JIS,UTF-8,EUC-JP,SJIS");
でも文字化けが無いので、念のためこの設定で運用したいと思います。

ありがとうございました。
Reply all
Reply to author
Forward
0 new messages