很可能你沒有使用相同的字符集(utf-8)無處不在因此你的數據在某個時刻會被搞亂。這取決於你在做什麼,你就必須更改/添加以下點中的一個或多個(也許這是SET CHARSET
/mysql_set_charset
你忘了):
告訴MySQL使用UTF-8。要做到這一點,把它添加到你的我的。CNF:
collation_server = utf8_unicode_ci
character_set_server = utf8
與MySQL進行交互前,送出這兩querys:
3210
,或者讓打開連接後PHP這樣做:
mysql_set_charset('utf8', $conn); // when using the mysql_-functions
mysqli::set_charset('utf8') // when using mysqli
集UTF-8作爲數據庫
CREATE DATABASE `my_db` DEFAULT CHARACTER SET 'utf8';
默認字符集爲表做同樣的:
CREATE TABLE `my_table` (
-- ...
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
假設客戶端是一個瀏覽器,以utf-8和t的形式提供您的內容他正確的標題:
header('Content-type: text/html; charset=utf-8');
,真正做到確保瀏覽器的理解,加元標記:
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
,最後但並非最不重要的,告訴瀏覽器使用utf-8提交表格
<form accept-charset="utf-8" ...>
檢查什麼樣的目標表中的字段,您存儲所有的字符串也有如下歸類:\t utf8_general_ci –
這裏是由cherset造成的問題來無論是在數據庫中插入數據(應該是UTF-8 - 通用)和連接到數據庫時設置的字符集。 MySQLi,PDO和mysql_ *都有連接時設置默認字符集的功能 –
另外,在執行任何查詢之前,請嘗試執行以下操作之一:SET NAMES utf8 –