我需要從一個特定的虛擬主機服務內存取資料庫。頁面採用 UTF-8 編碼,表單接收的資料應插入資料庫而不更改編碼。資料庫也採用 UTF-8 編碼。
SET character set 'utf8' 或 SET names 'utf8' 在這裡都無法正常運作,因此這個解決方法確保所有變數都設定為 utf-8。
<?php
mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $conn);
$re = mysql_query('SHOW VARIABLES LIKE "%character_set%";')or die(mysql_error());
while ($r = mysql_fetch_assoc($re)) {var_dump ($r); echo "<br />";} exit;
?>
所有重要的變數現在都是 utf-8,我們可以安全地使用帶有 mysql_escape_string($var) 的 INSERT 或 SELECT,而無需任何編碼函數。