2012-04-03 32 views
1

請去這裏看看我的問題,其在頁面的左側的卡內: http://gumonshoe.net/magic/card/?card=258處理字符集(用戶輸入 - >腓 - > MySQL和回來)

撇號越來越轉化爲ascii它看起來像來自各種外文文本格式。我已經看到了這一點,但由於我使用美國英語,這可能是基本的默認設置,我無法重現錯誤來測試它。

我覺得有一個正確的方式來傳遞角色,我只是不知道它是什麼。

我正在尋找的答案會告訴我,在這個鏈條的東西越來越混亂。

User Form on web page for input >> 
javascript method >> 
php >> 
mysql 

據我可以告訴這發生在PHP中。它到達那裏時在數據庫中肯定是錯誤的。

對於從這一點起可以修復所有問題的解決方案,我會非常高興,而不是修復db中已有內容的修補程序,因爲我可以輕鬆找到/替換這些實例。

感謝您的幫助。搜索給了我不同的結果,但我找不到任何與我的問題完全相同的東西,並從基礎知識中解釋它。

再一次,非常感謝!

是否有任何與此:

mb_internal_encoding 

回答

1

它不會在一個地方發生,它總是發生在兩個端點之間的通信。這可能是在溝通瀏覽器之間< - > PHP或PHP < - > mysql的

你應該確保有一個charset meta標籤在HTML頭,是這樣的:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

這樣,您的Web瀏覽器知道在將數據發佈到服務器時使用什麼字符集(以及在呈現頁面時使用什麼字符集)。

當連接到MySQL,你應該確保您的連接兩端來說相同的字符集,這應該是相同的字符集的Web瀏覽器中使用:

mysql_query('set names utf8'); 

現在,你應該沒事的。

+0

您可以在mysql_connect()之後立即運行mysql_query('set names utf8')。 – 2012-04-03 17:34:19

+0

那我肯定需要做一些改動。我會試驗一下,並回復它是否看起來有幫助。不幸的是,我將無法測試它,除非你知道如何做這樣的事情......:/ – Kirk 2012-04-03 17:37:00

+0

我已經做了更改,現在我需要查看是否可以讓我的外國用戶之一試試看。 :如果問題確實消失了,我會標記爲正確答案。很高興我用OO php。 – Kirk 2012-04-03 17:44:49