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();