趣味のプログラム工房

PHP mb_strimwidthで文字化け!

「ウェブでワイン管理」
http://wine-cellar.sites-mall.com/
のページでいつの間にか文字化けが発生するようになっていたので、そろそろ直そうかと。

てっきりDBとのなにかしらの絡みで発生しているのかと思ったら、phpの「mb_strimwidth」関数が原因でした。
mb_strimwidthの引数に文字コードを渡してあげれば解決です。
$str = mb_strimwidth($str, 0, 10, \"…\", utf8);


で、DB(mysql)とのインタフェースでは、
mysql_query(\'set character set utf8\');
を指定すると文字化けが発生しなくなるのですが、最近は、この方法も非推奨らしく、今は、
$db->set_charset(\'utf8\');
で設定するらしいです。

私は、mysql_queryを使ってるけど、めんどくさいからそのままー

2013年11月24日