2011-06-10 63 views
0

我有我認爲是一個編碼問題與 從MySQL的連接,打印顯示查詢罰款, ,如果我在phpmyadmin運行打印的查詢,它返回 結果,但回來從我的空腳本,沒有人 知道我在哪裏可以找出發生了什麼?PHP/MySQL字符編碼不兼容?

這是有問題的查詢:

SELECT id FROM categories WHERE name_es = 'Pédagogie/Enseignement' OR name_fr = 'Pédagogie/Enseignement' 

與不同的值相同的查詢的WHERE子句(不é或其他非英文字符值)做工精細,這就是爲什麼我認爲它的編碼方式有關。

檢索和打印從數據庫中,這些數據是工作就好

感謝

[編輯:我認爲這個問題可能是我抓住我是從上傳的文件查詢文本作爲寫入完全相同的文本到搜索文本輸入我有哪些生成完全相同的查詢工作正常]

[解決:這顯然是由空格字符編碼奇怪造成的。它打印得很好,但雙編碼打印顯示我在[編輯]中提到的查詢之間的差異]

+0

您是否嘗試使用Unicode字符的\ u轉義序列?否則,url會對名稱進行編碼,並在檢索時對其進行解碼。 – 2011-06-10 14:56:15

+0

我在找那個,找不到它。它是PHP還是MySQL方面? – Lacrymology 2011-06-10 15:31:11

+0

我不確定它是否會工作,但你可以試試這個(http://php.net/manual/en/function.urlencode.php),並在你檢索時解碼... – 2011-06-10 15:48:36

回答

0

這顯然是由不同編碼的空白引起的。

1

嘗試mysql_set_charset以查看它是否有效。在phpMyAdmin中檢查數據庫中的'MySQL連接排序規則'。

+0

這些都很好.. – Lacrymology 2011-06-10 15:31:39

+0

看到了你的更新,是你的頁面和表單編碼集? – 2011-06-10 15:35:54

+0

嗯,也許不是。特別是表格。我現在檢查 – Lacrymology 2011-06-10 15:47:38