2012-07-01 33 views
0

當我在mySQL表中插入名稱時,出現編碼問題,其中包含特殊字符,如「ö」,「ä」等。 例如,單詞「Öl」變成「Ã」 ¶l」。插入MySQL編碼PHP

我試圖將文件名寫入文本文件,然後正確顯示。

我試圖在phpMyAdmin中使用SQL語句插入名稱,並且工作良好。

現在我在插入查詢之前找到了一個設置mysql_query('SET NAMES utf8;');的解決方案。 這是應該怎麼做,或者有更好的方法嗎?

+0

可能是一個字符集問題,看看這個文檔(http://dev.mysql.com/doc/refman/5.0/en/charset-charsets.html),看看你的表是否使用正確的字符集。通常utf-8可以。 –

回答

1

是運行SET NAMES utf8;需要使MySQL知道客戶端連接在發送數據時使用ut8。您現在可以在PDO連接中定義它(如果您正在使用PDO連接到MySQL)。

如果高於5.3.6運行較舊版本的PHP,那麼你可以使用下面的代碼:

$pdo = new PDO(
'mysql:host=mysql.example.com;dbname=example_db', 
"username", 
"password", 
array(PDO::MYSQL\_ATTR\_INIT\_COMMAND => "SET NAMES utf8")); 

否則使用以下命令:

$pdo = new PDO("mysql:host=localhost;dbname=world;charset=utf8", 'my_user', 'my_pass');