2012-01-21 62 views
0

在我的網站上,很多用戶都有外國人的名字,他們對於最近購買的聊天腳本很感興趣,我想知道是否有任何PHP功能或任何可以整理的功能。糾正utf-8

請注意他們是如何搞笑的,他們是如何存儲在數據庫中的。

艾麗西亞Carreñö Geneviève

例如。

那麼我怎樣才能使用PHP來使這些看起來正確?

感謝

編輯:使用MySQL時,他們似乎出來是正確的,但不能當粘貼到HTML本身或呼應了

編輯2:

我跑這在phpMyAdmin: 「mysqldump的-h本地主機-u根-p --opt --quote-名\ --skip-設置的字符集--default-字符集= latin1的一般>一般dump.sql 」

的錯誤是:「#1064 - 你有一個呃在您的SQL語法中使用ror;請檢查與您的MySQL服務器版本相對應的手冊,以便在第1行'mysqldump -h localhost -u root -p --opt --quote-names \ --skip-set-charset'附近使用正確的語法「

編輯3:

<meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
<?php  
$connection = mysql_connect('localhost','root',''); 
$select = mysql_select_db('general',$connection); 
$result = mysql_query('SELECT name FROM exchange WHERE `id`= 192'); 
$results = mysql_fetch_assoc($result); 
echo $results['name']; 


?> 
+0

其中之一: - ▷| - ? (關於你的標題);) – Bojangles

+1

提示:搜索「SET NAMES utf8」。 UTF-8的數據庫問題已經提出了上千次。 – deceze

回答

0

您需要將數據庫連接設置爲UTF-8告訴將要發送給它的數據將是UTF-8和數據,從它回來數據庫應該是UTF-8:

$connection = mysql_connect('localhost', 'root', ''); 
mysql_set_charset('utf8', $connection); 

請參閱http://php.net/manual/en/function.mysql-set-charset.php

+0

試過並做了什麼好壞 – Jake

+0

這是什麼意思? – deceze

+0

基本上,在數據庫中它存儲的錯誤,但是當我在編輯3中使用上面的代碼時,它顯示正常,但是然後我應用了你所說的並且它現在返回到它在數據庫中是如何不好的 – Jake

0

他們最有可能存放不當在數據庫中使用Adminer,phpMyAdmin界面,或者查詢字符串可能更改字段,表或數據庫(我推薦後者),以utf8_general_ci你。請使用默認的latin - 某些不支持UTF8字符的編碼,


您嘗試在OP中的PHPMyAdmin中運行的命令必須從控制檯運行;這不是一個SQL查詢,因此語法錯誤。嘗試使用PHPMA的內置導出和導入選項卡來導出和導入數據。

+0

ive改變了它,這些值是否也改變了?否則我該如何處理我的5,000名會員? – Jake

+0

是的,您必須導出數據,更改數據庫編碼,然後重新導入。您可以使用'UPDATE'語句來完成此操作,該語句記錄在[this](http://en.gentoo-wiki.com/wiki/Convert_latin1_to_UTF-8_in_MySQL)頁面的底部。 – Bojangles

+0

因此,如果我現在將AliciaCarreñoGenevi插入到數據庫中,它會在數據庫中正確顯示或者? – Jake

1

至少有六個地方的編碼/字符集可能是錯誤的,而且很難說哪一個是責任。通常有幾個。所以我建議先閱讀this article about Unicode。這不是最短的,但它將是您編程生涯中最有價值的20分鐘之一。在此之後,還有一些仔細的想法,你應該能夠確定問題的根源和解決方案。

+0

不可否認,我有點偏見,但我會建議[什麼每個程序員絕對,積極需要知道關於編碼和字符設置爲與文字工作](http://kunststube.net/encoding/)喬爾的...:o) – deceze

+0

@deceze - 有趣的是,我還沒有讀過那個。我絕對會! –

+1

@deceze - 好的,我讀過了。我認爲這兩篇文章是相輔相成的。喬爾的文章在解釋「什麼是什麼」方面做得更好,而大衛的文章側重於這些影響。 –