程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 你的php網頁亂碼了嗎

你的php網頁亂碼了嗎

編輯:關於PHP編程

       一、

      學習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字符集來解釋內容,這是就會出現亂碼了,而我們那些從數據庫讀取出來的內容卻沒有問題

      網頁編碼

     

      原來的gbk編碼的文件

     

      後來utf-8編碼的文件

     

      (3)注意一點,sublime text3 的轉換編碼的時候不太給你,雖然顯示轉換成功,可是呢?顯示還是依舊,還是我們的notepad++給力一點,怎麼修改前面有!轉換成功之後

     

      3、為什麼我按照你所說的修改了,在mysql終端下顯示,還是亂碼呢?

      分析:

      (1)我們先來看看windows下的cmd的使用的字符集是什麼?

     

      可以看到,cmd的字符集是gbk,也就是說任何在終端顯示的內容會以對應gbk這個字符集,但是我們數據庫的中文設置的utf8這個字符集,當我們要顯示時,自然會以utf8編碼的讀取數據庫數據,那時編碼為utf-8,一到終端就亂套了

      (2)那該怎麼查看呢?

      使用phpmyadmin就好了打,當然得設置我們使用的utf-8編碼!

            :更多精彩教程請關注三聯圖文教程 頻道,

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