您的位置:首页 > 运维架构 > Linux

Linux系统中关于Sqlite3中文乱码问题及解决办法

2016-08-02 17:45 495 查看
新做的一个项目在本地(Win8)测试时没有问题,但传到服务器(Linux)时从Sqlite3数据库查询到的数据中文却是乱码(数据库中是正常的)
将php文件、html文件都设置成统一的utf8还是一样,在网络上也找了各种解决方案都没有任何用.
解决办法:
将查询到的数据重新处理,全部强制转换成UTF8

//打开db.db表
$db = new SQLite3('db.db');
if(!$db){
echo $db->lastErrorMsg();
exit;
} else {
}
$keys = array();
$students = array();
//查询
$ret = $db->query("SELECT * from student limit 50");
//将结果保存到新数组
while($row = $ret->fetchArray(SQLITE3_ASSOC) ){
$keys = array_keys($row);
//转换列值,防止出现乱码
foreach($keys as $key){
$row[$key] = mb_convert_encoding($row[$key],"gb2312","utf-8");
}
//添加到新数组
array_push($students, $row);
}
$db->close();
print_r($students);


  

参考:
SQLite - PHP 文档
sqlite#pragma_encoding
关于SQLITE版本和中文乱码的小结
Set PRAGMA encoding =“UTF-16” for main database in sqlite

来自为知笔记(Wiz)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: