2016-11-06 40 views
0

我有一個mysql數據庫,我有一個名爲「user_job」的表。在行「類別」中,我存儲了一個短語「Alpha-Aλφα」。 我的代碼是:無法從MySQL數據庫中獲取英語和希臘語的短語

<?php 
$e = mysql_query("select `category` from `user_job` where `category`='$category' "); 

$a = mysql_num_rows($e); 

?> 

當我運行它時,它返回我0行。如果我刪除希臘字中的「Αλφα」這個希臘字,它會起作用,並返回給我1行。這裏有什麼問題以及如何解決這個問題。我的表設置爲「utf8_general_ci」

+0

'utf8_general_ci'包含Αλφα[見這裏]中的所有字符(http://collat​​ion-charts.org/mysql60/mysql604.utf8_general_ci.european.html),所以它不是你的編碼。 –

回答

0

這看起來像一個編碼不匹配,你應該做的是確保你轉換到適當的編碼與你的數據庫。

希臘字母通常編碼爲ISO-8859-7。如果這真的是你輸入的話,那麼你可以將其轉換像這樣:

<?php 
$category = iconv('ISO-8859-7', 'UTF-8', $category); 
?> 

PHP提供了許多有用的功能,以編碼之間轉換:

這兩個都帶有默認的PHP發行版。

+0

仍然無法正常工作 – 33528

+0

嘗試檢測輸入的編碼,以確保它是您正在轉換的正確編碼。在一個理想的世界中,所有的東西都應該是UTF-8,但是可悲的是我們並不生活在這樣的環境中:( 帶PHP的mbstring擴展提供了一種嘗試檢測輸入編碼的功能:http://php.net/mb_detect_encoding – Kalle

相關問題