程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 服務器數據庫編碼格式問題解決方案,編碼格式解決方案

服務器數據庫編碼格式問題解決方案,編碼格式解決方案

編輯:MySQL綜合教程

服務器數據庫編碼格式問題解決方案,編碼格式解決方案


服務器數據庫編碼格式問題

最近做項目在部署到阿裡雲服務器上之後出現了兩個問題:

1、亂碼問題。

2、ajax的php處理頁面裡面利用json_encode()函數返回json數據,則數據庫返回的數據只能是UTF8,如果是gbk則json也無法返回。

發現是數據庫編碼格式問題,網站使用的編碼格式為UTF8,數據庫的編碼格式調為了UTF8,但是character_set_server的值還是gbk。

查看數據庫編碼:

在mysql命令行裡面輸入:show variables like 'character%';

所以還是有亂碼存在。

於是從網上找了解決方法:

在mysql命令行輸入:set character_set_server=utf8;

OK修改成功!返回數據也正常,但是當關閉數據庫服務,重新啟動,發現set character_set_server又變回了gbk。

所以這個方法只能暫時性的解決。

最終找到了一個能用的不是特別好的解決方法是在執行SQL語句之前,先執行該SQL語句即可:

$conn->query('SET character_set_client = utf8;');
$conn->query('SET character_set_results = utf8;');
$conn->query('SET character_set_connection = utf8;');

這種解決方法個人感覺不是很好,每次執行的次數太多,如果能修改服務器數據庫的編碼格式最好。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved