2015-05-19 53 views
0

我有一個包含法文單詞的文件,並且我將該文件編碼爲「Latin-1」(uft-8不工作),將該文件加載到MySQL中的表中。我需要從網頁中輸入$ _POST(「name」)並使用「名稱」從MySQL進行查詢。我的代碼如下:如何在php中查詢包含特殊字符(è,d',è)的mysql?

$name = "d' évaluation perfomance académique"; 
$sql = "SELECT * FROM application WHERE `Description` = '".$name."'"; 

對於正常的「名稱」,它可以工作。但如果包含(è,d',è)的「名稱」,則不能工作。

有什麼建議嗎?

謝謝!

+0

請嘗試'URLEncoder.encode( 「E」, 「UTF-8」)'告訴我是什麼產生。 – cybermonkey

+0

php iconv()函數會將一個字符集轉換爲另一個字符集。 – Octopus

+0

[Android - 向PHP服務器發送帶有空格的POST的可能的重複](http://stackoverflow.com/questions/29097627/android-sending-post-with-spaces-to-php-server)。 (重複,因爲它詳細說明* PHP如何處理數據庫中的字符,它需要先預處理字符)。 – cybermonkey

回答

0

假設你的PHP文件是UTF-8,我相信下面的工作:

$name = "d' évaluation perfomance académique"; 
$sql = "SELECT * FROM application WHERE `Description` = '".$name."'"; 
$sql_latin1 = iconv("UTF-8","ISO-8859-1",$sql); 
+0

請不要回答重複的問題。 – cybermonkey

+0

此解決方案未包含在所謂的重複中。 – Octopus

+0

我的回答回答了這個問題。雖然你的答案*確實回答了這個問題,但它對回答重複問題不以爲然。這兩個問題都涉及字符編碼,兩個答案都是正確的。 – cybermonkey