一、
學習php的童鞋在編寫網頁的時候,要是設計到中文內容的儲存的時候,大多會出現一個問題就是亂碼。一般亂碼的話,我們可以檢查三個方面
(1)網頁編碼是否正確,比如是否在頭部那里加入原標簽
meta charset="UTF-8">
(2)檢查mysql數據庫儲存時默認使用的字符集
(3)檢查網頁文件的編碼,是否為對應的中文編碼
------------------
環境:win7+wamp2.2
------------------
二、
下面我們就第二點開始,mysq數據庫使用的編碼字符集
(1)打開mysql終端,查看當前的設置,確定要修改的范圍
show variables like 'char%';
(2)根據結果進行分析,
1、如果你顯示的結果和我的差不多,即(只有character_set_system編碼為utf8)那么清跟隨下面的腳步一步步來

2、打開my.ini文件,搜索關鍵詞'mysqld',找到之后,觀察是否有這一行
character_set_server = utf8
倘若沒有的話,則應該像我這樣在其下面添加一句

3、再次搜索關鍵詞'client',觀察是否有這一行
default_character_set = utf8
沒有的話在[client]下面添加上

4、保存,重啟mysql服務,關閉mysql終端(不然看到的客戶端編碼不會更新)
5、再次打開終端,我們再次輸入
show variables like 'char%';
倘若出現下面的結果,即mysql數據設置成功

三、
網頁文件編碼這個問題最容易被忽略,這個是在保存的時候,選擇保存文件編碼的格式時設置的。
解決辦法:
1、使用notepad++打開該網頁文件,然后在“格式”--“轉為UTF-8無BOM編碼格式”

2、保存一下就好了
問題分析:
1、我在編寫php的時候已經使用過
"font-size:18px;">'set names utf8'); ?>
但是還是出現亂碼問題!
分析:使用上面語句,修改的只是三項,這三項分別為
character_set_client
character_set_connection
character_set_results
而且這種修改只是臨時性的,關閉終端后又和原來一樣
圖片說明:

2、我們對于第三個亂碼問題進行分析一下
(1)使用sublime text3編輯打開php文件。可以看到左下角有編碼的信息,可以看到,目前的編碼為gb2312

(2)當網頁加載的時候,那時也就相當于打開一個文件,那時讀取的格式時按照gb2312的編碼來讀取網頁文件,而在用戶瀏覽器顯示時,因為網頁聲明了字符集為utf-8,所以會將得到文件按utf-8字符集來解釋內容,這是就會出現亂碼了,而我們那些從數據庫讀取出來的內容卻沒有問題
新聞熱點
疑難解答