首頁 >後端開發 >PHP問題 >php顯示資料庫中的中文亂碼怎麼解決

php顯示資料庫中的中文亂碼怎麼解決

PHPz
PHPz原創
2023-04-21 09:07:59988瀏覽

在開發中使用php呼叫資料庫時,常常會遇到中文亂碼的問題。這個問題一般是由於資料庫字元集與php字元集不同或是php沒有正確解析資料庫中的中文字元造成的。在這篇文章中,將為大家介紹如何解決php中文亂碼的問題。

一、設定資料庫字元集

1.1 檢視資料庫字元集
在命令列介面輸入下列指令,查看資料庫目前字元集:

show variables like 'character%';

1.2 設定資料庫字元集
為了解決中文亂碼問題,需要將資料庫字元集設定為utf8。在mysql中,可以透過以下指令進行設定:

ALTER DATABASE `database_name` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

其中,database_name是你要設定的資料庫名稱。這裡將資料庫的預設字元集設定為utf8。在mysql中,utf8是最常用的字元集,能夠支援絕大多數語言的字元。

1.3 設定資料表字元集
在mysql中,每個資料表也可以單獨設定字元集。透過下列指令可以將某個表格的字元集設定為utf8:

ALTER TABLE `table_name` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

其中,table_name是你要設定的資料表名稱。這裡將資料表的字元集設定為utf8。這樣一來,資料庫中的所有表都會使用utf8字元集了。

二、設定php字元集

2.1 設定php預設字元集
開啟php.ini文件,然後找到"mbstring.language"參數,將它的值設為"CN "。如下所示:

mbstring.language=CN

2.2 設定php運行時字元集
在php中,也需要設定運行時字元集。可以透過以下程式碼設定php的字元集:

header('content-type:text/html;charset=utf-8');

這個程式碼會將php的輸出字元集設定為utf-8。

三、呼叫資料庫中的中文字元

3.1 資料庫連結字元集
在php中,需要透過連結資料庫時設定字元集,程式碼如下:

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die('连接数据库失败!');
mysql_select_db($dbname, $conn);
mysql_query("SET NAMES 'utf8'");

其中,$dbhost、$dbuser、$dbpass、$dbname分別是資料庫的主機位址、使用者、密碼、資料庫名稱。這裡我們透過mysql_query()函數將資料庫字元集設定為utf8。

3.2 設定查詢字符集
如果查詢中有中文字符,則需要設定查詢字符集。可以透過以下程式碼設定查詢字元集:

mysql_query("set character_set_client=utf8");
mysql_query("set character_set_results=utf8");
  1. 測試結果
    配置資料庫字元集和php字元集之後,我們可以對資料庫中的中文進行測試。可以建立一個表,並將一個中文字元插入其中,然後透過以下程式碼進行檢視:
$result = mysql_query("SELECT * FROM table_name");
while($row = mysql_fetch_array($result)){
    echo $row['field_name'];
}

這樣就可以在頁面上正確顯示中文字元了。

五、總結

透過上述步驟,我們可以解決php顯示資料庫中的中文亂碼問題。要實現正確地顯示中文字符,需要將資料庫字符集和php字符集都設定為utf8,並正確地設定查詢字符集和連結字符集。這樣就可以在開發中使用中文字符,並實現正確地顯示。

以上是php顯示資料庫中的中文亂碼怎麼解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn