新做的一個項目在本地(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);
參考:
