I run my forum in utf-8, for simultaneous display of traditional and simplified chinese characters. In chinese related web sites, traditional vs simplified chinese encoding is alway a sticky issue, utf-8 solves the problem cleanly.
In fact I think you don't even need the mb_string stuff if you don't care about the string length issues.
In functions.php, I do:
function pun_strlen($str)
{
return mb_strlen($str, 'utf-8'); // and blindly hope that the function actually does it's counting properly
}
In common.php I do:
// Load DB abstraction layer and connect
require PUN_ROOT.'include/dblayer/common_db.php';
// common_db.php would have given us a db connection handle
// make sure we talk in utf-8 from this point on
// this is to get around the issue of the mysqlclient client library
// defaulting to iso-8859-1, thus inserting the wrong stuff into the db
$db->query("set names utf8");
// Start a transaction
$db->start_transaction();