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

  

 
 
參考:






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM