服務(wù)器數(shù)據(jù)庫編碼格式問題
最近做項目在部署到阿里云服務(wù)器上之后出現(xiàn)了兩個問題:
1、亂碼問題。
2、ajax的php處理頁面里面利用json_encode()函數(shù)返回json數(shù)據(jù),則數(shù)據(jù)庫返回的數(shù)據(jù)只能是UTF8,如果是gbk則json也無法返回。
發(fā)現(xiàn)是數(shù)據(jù)庫編碼格式問題,網(wǎng)站使用的編碼格式為UTF8,數(shù)據(jù)庫的編碼格式調(diào)為了UTF8,但是character_set_server的值還是gbk。
查看數(shù)據(jù)庫編碼:
在mysql命令行里面輸入:show variables like 'character%';
所以還是有亂碼存在。
于是從網(wǎng)上找了解決方法:
在mysql命令行輸入:set character_set_server=utf8;
OK修改成功!返回數(shù)據(jù)也正常,但是當(dāng)關(guān)閉數(shù)據(jù)庫服務(wù),重新啟動,發(fā)現(xiàn)set character_set_server又變回了gbk。
所以這個方法只能暫時性的解決。
最終找到了一個能用的不是特別好的解決方法是在執(zhí)行SQL語句之前,先執(zhí)行該SQL語句即可:
$conn->query('SET character_set_client = utf8;');
$conn->query('SET character_set_results = utf8;');
$conn->query('SET character_set_connection = utf8;');
這種解決方法個人感覺不是很好,每次執(zhí)行的次數(shù)太多,如果能修改服務(wù)器數(shù)據(jù)庫的編碼格式最好。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
您可能感興趣的文章:- CentOS服務(wù)器apache綁定多個域名的方法
- 騰訊云(ubuntu)下安裝 nodejs + 實現(xiàn) Nginx 反向代理服務(wù)器
- 在同一臺服務(wù)器上配置多個Tomcat的方法
- CentOS 7.2部署郵件服務(wù)器(Postfix)
- SVN 安裝教程之服務(wù)器和客戶端
- mysql自動定時備份數(shù)據(jù)庫的最佳方法(windows服務(wù)器)
- Python 搭建Web站點之Web服務(wù)器與Web框架
- 詳解Android提交數(shù)據(jù)到服務(wù)器的兩種方式四種方法
- Nginx 服務(wù)器安裝及配置文件詳解介紹