Brophp框架开发时连接数据库读取UTF8乱码的解决
用brophp框架读取数据库的时候发生乱码,数据库和源码都采用的utf-8编码,按理说不应该出现乱码的。仔细分析应该是出在数据连接时,后来看到一个高手的解答总算弄明白了。英文正常读取而中文乱码,基本上都是字符集的问题。要在PHP端发送set names utf8.声明和数据库握手的时候也使用utf8字符集了。
用brophp框架读取数据库的时候发生乱码,数据库和源码都采用的utf-8编码,按理说不应该出现乱码的。仔细分析应该是出在数据连接时,后来看到一个高手的解答总算弄明白了。英文正常读取而中文乱码,基本上都是字符集的问题。要在PHP端发送set names utf8.声明和数据库握手的时候也使用utf8字符集了。
如果是用pdo连接的修改下在dpdo.class.php就完全解决了
短连接下可以这样修改:
$pdo=new PDO($dsn, USER, PASS, array(PDO::ATTR_PERSISTENT=>false,MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8';"));
BORPHP用的是长连接可以参照下面修改
$pdo=new PDO($dsn, USER, PASS, array (PDO::ATTR_PERSISTENT=>true));
$pdo->exec('SET NAMES utf8');
如果是mysqli方式连接数据库就修改下mysqli.class.php也能解决
加上用utf8连接就行了。
$mysqli=new mysqli(HOST, USER, PASS, DBNAME);
$mysqli->query("SET NAMES 'utf8'");