Linux系统中关于Sqlite3中文乱码问题及解决办法
新做的一个项目在本地(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);