標籤:des style blog color os io ar 檔案 資料
php亂碼問題主要是由於中文的編碼問題導致的,中文的編碼一般用到的以gbk,utf8居多。
為了使中文編碼不再亂碼,解決方案如下:
1.在php中加上header("Content-type: text/html; charset=utf-8");這句話一定要在php的<?php 標記之後的第一句話開始。
即
<?phpheader("Content-type: text/html; charset=utf-8");//added code ?>
2.設定資料庫連接為utf-8編碼,在操作資料庫之前,這樣聲明
<?phpheader("Content-type: text/html; charset=utf-8");//codemysql_query("set names ‘utf8‘");//資料庫操作....?>
3.資料庫的編碼設定為utf-8(以mysql為例子)
查詢字元集的方法:
我們在更改資料庫字元集的時候這樣做:1.擁有資料庫設定檔的修改許可權(可以修改my.ini):
如:在my.ini檔案中找到下面的配置:
default-character-set = utf8
character_set_server = utf8
2.沒有修改my.ini的配置許可權(一般是在雲主機上)
可以在phpAdmin中這樣設定:
或者是執行sql命令:
mysql> SET character_set_client = utf8 ;
mysql> SET character_set_connection = utf8 ;
mysql> SET character_set_database = utf8 ;
mysql> SET character_set_results = utf8 ;
mysql> SET character_set_server = utf8 ;
mysql> SET collation_connection = utf8 ;
mysql> SET collation_database = utf8 ;
mysql> SET collation_server = utf8 ;
最後,如果在進行上述的操作,即:資料庫的編碼是utf8,資料表的編碼是utf8,資料表欄位的編碼也是utf8,
這樣仍然出現亂碼的原因可能是在資料庫連接的時候出現問題(資料庫連接可能需要外部傳入的參數,這個參數的編碼也很重要)
這樣的話我們要這樣設定:
SET NAMES ‘utf8‘;
及在資料庫執行操作之前加上這麼一句:它的作用等同於:
網站開發筆記【二】php的亂碼問題解決