服務(wù)器數(shù)據(jù)庫(kù)編碼格式問(wèn)題
最近做項(xiàng)目在部署到阿里云服務(wù)器上之后出現(xiàn)了兩個(gè)問(wèn)題:
1、亂碼問(wèn)題。
2、ajax的php處理頁(yè)面里面利用json_encode()函數(shù)返回json數(shù)據(jù),則數(shù)據(jù)庫(kù)返回的數(shù)據(jù)只能是UTF8,如果是gbk則json也無(wú)法返回。
發(fā)現(xiàn)是數(shù)據(jù)庫(kù)編碼格式問(wèn)題,網(wǎng)站使用的編碼格式為UTF8,數(shù)據(jù)庫(kù)的編碼格式調(diào)為了UTF8,但是character_set_server的值還是gbk。
查看數(shù)據(jù)庫(kù)編碼:
在mysql命令行里面輸入:show variables like 'character%';
所以還是有亂碼存在。
于是從網(wǎng)上找了解決方法:
在mysql命令行輸入:set character_set_server=utf8;
OK修改成功!返回?cái)?shù)據(jù)也正常,但是當(dāng)關(guān)閉數(shù)據(jù)庫(kù)服務(wù),重新啟動(dòng),發(fā)現(xiàn)set character_set_server又變回了gbk。
所以這個(gè)方法只能暫時(shí)性的解決。
最終找到了一個(gè)能用的不是特別好的解決方法是在執(zhí)行SQL語(yǔ)句之前,先執(zhí)行該SQL語(yǔ)句即可:
$conn->query('SET character_set_client = utf8;'); $conn->query('SET character_set_results = utf8;'); $conn->query('SET character_set_connection = utf8;');
這種解決方法個(gè)人感覺(jué)不是很好,每次執(zhí)行的次數(shù)太多,如果能修改服務(wù)器數(shù)據(jù)庫(kù)的編碼格式最好。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
標(biāo)簽:衡水 貴港 阜陽(yáng) AXB 酒泉 雞西 萍鄉(xiāng) 張掖
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《服務(wù)器數(shù)據(jù)庫(kù)編碼格式問(wèn)題解決方案》,本文關(guān)鍵詞 服務(wù)器,數(shù)據(jù)庫(kù),編碼,格式,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。