我有列国家一个MySQL表-状态都来自欧洲-与表和列在utf8_unicode_ci
。
当我把我使用的数据库
mysql_select_db($database_WTF, $WTF);
mysql_query('SET NAMES utf8');
$query_Recordset1 = "SELECT *
FROM newmeets
WHERE newmeets.`State` IS NOT NULL
AND newmeets.`State` != ''
ORDER BY newmeets.`State` ASC ";
我然后运行它虽然这个简单的循环
mysql_select_db($database_WTF, $WTF);
mysql_query('SET NAMES utf8');
$query_Recordset1 = "SELECT *
FROM newmeets
WHERE newmeets.`State` IS NOT NULL
AND newmeets.`State` != ''
ORDER BY newmeets.`State` ASC ";
$LastState = "";
do {
echo
var_dump($LastState == $row_Recordset1['State']);
echo $row_Recordset1['State'];
$LastState = $row_Recordset1['State'];
var_dump($LastState == $row_Recordset1['State']);
echo "<hr>";
} while ($row_Recordset1 = mysql_fetch_assoc($Recordset1));
当它击中预期我得到一个新的价值第一次:
布尔值false
布鲁塞尔
布尔值true
接下来的时间,我得到:
布尔值true
布鲁塞尔
布尔值true
我倒是很期待。
问题是当它击中非拉丁字符时,每道生产:
布尔值false
巴登 - Württember
布尔值true
当我将其设置为等于他们,然后在接下来的记录拉(每条记录已经被同样进入)失败了,这是当我使用了相同的编码,我真的需要它认识到它们是相同的即使输入的字符都不同。
不管发生什么事我都试过的utf8_encode
和Normalizer::normalize
,从比较得到真正的结果,这样我就可以在控制结构使用(例如,如果你已经看到了它最后一次不要打印这个时候),但它失败。