2013-04-16 89 views
1

希望有人能夠在這奇怪的編碼問題

幫助我有一個包含英語和德語文字中,我使用PHP和Postgres數據庫的數據庫,在英文查詢文本工作正常,但是當查詢字符串包含任何德語字母,我會得到空的結果。

例如:

select field from Table where field ilike '%software%' 

返回如預期

select field from Table where field ilike '%bersetzung%' 

返回結果如預期

select field from Table where field ilike '%Übersetzung%' 

返回空集

顯示CLIENT_ENCODING返回ù結果NICODE,即使在查詢字符串中有任何德語字母,即使在pgadmin中運行上述查詢也會返回空集。

數據庫編碼爲UTF-8

在此先感謝

+0

可能重複[如何使用與PostgreSQL和Umlauts不區分大小寫的模式匹配?](http://stackoverflow.com/questions/3104769/how-to-use-case-insensitive-pattern-matching-with-postgresql和變音符號) – splash

+0

它不是一個模式相關的問題,問題是與編碼,我也有最新的PG服務器,我看到你的建議問題之前問這裏,它甚至沒有類似的問題。 – phpalix

+0

該字段中的值和該數據庫的lc_ctype的值是什麼? –

回答

0

PostgreSQL有它如何依賴於系統的行爲古怪數的。這是一。一般來說,本地化支持取決於系統庫和系統行爲。無論是大寫/小寫還是整理等都是如此。

它看起來不像你可以在數據庫設置後創建數據庫的本地化設置。您可能需要備份數據庫,使用正確的本地化設置重新創建數據庫,然後重新加載數據。這可能不是你正在尋找的答案,但它可能是最好的答案。