2014-10-06 55 views
1

我使用PHP 5.4.31和MySQL版本5.5.39-MariaDB。我的數據庫採用utf8_general_ci整理,我的一些字段包含拉丁變體,如á和é。PDO語句中的變體字符在IE9中不起作用

我在我的PDO語句中直接使用mysql:charset = utf8,它在Chrome和FireFox(PC,Mac和平板電腦)中工作正常。但在IE9中不起作用。

如果我使用的URL如「url_of_page.php?firstName = Joe & lastName =González」IE9找不到記錄。我試過使用$ stmt-> execute(「set names utf8」);我試過使用$ stmt-> execute(「set names utf8」);這沒有什麼區別。不明白爲什麼這是一個瀏覽器問題。任何想法爲什麼IE有問題?

+0

你確定那些字符在$ _GET中乾淨利落嗎?如果你使用'echo $ fName',它們是否顯示正確? – 2014-10-06 21:50:13

+0

我看到它不是。當我在IE編碼菜單中打開自動選擇時,它會正確顯示。但是,當我刷新頁面時,變體顯示不正確(小方框)。我注意到,當我將鼠標懸停在IE中的某個URL上時,這些變體不會顯示在URL中(顯示在瀏覽器底部),但是一旦我真正進入頁面,變體字符就會顯示在URL中。變量字符在剛剛從數據庫中提取時顯示,但不在$ _GET中。 – Brent 2014-10-06 22:18:54

回答

1

問題是我在分配URL變量時沒有使用urlencode,而且我的URL不是有效的ASCII格式。使用進行urlencode我正確的URL後是這樣的:

url_of_page.php的firstName =喬&的lastName =岡薩雷斯%C3%A1lez

,而不是

url_of_page.php的firstName =喬&的lastName =岡薩雷斯?

+0

您應該將自己的答案標記爲已接受,以便將事情關閉好! – miken32 2014-10-07 04:17:02