2012-06-22 80 views
1

我有一個字符串,我從一個本應一個的Filemaker數據庫中提取讀PHP(可能是UTF8)編碼/解碼的問題 - 單字符顯示

皮特 - 戴設計的高爾夫球場

但我的數組形式返回它

皮特Dyeâ€「設計的高爾夫球場

我認爲這與編碼有關,但我不確定...我如何糾正這個錯誤?如果涉及到它,我不介意爲所有問題創建一個str_replace()數組,但不必單獨查找例外。

謝謝!

回答

1

一個快速和骯髒解決方法是使用iconv函數//TRANSLIT參數:

// assuming your page is using `ISO-8859-1` character set 
echo iconv("UTF-8", "ISO-8859-1//TRANSLIT", "Pete Dyeâ€「designed golf course"); 
// Pete Dye-designed golf course 

注意,三個字節序列â€「被轉換爲-這是Unicode 的近似表示。

+0

快速和骯髒的,完美的。 – Alex

+0

小問題雖然:這個作品很好地迴應你的方式,但是當我帶上全部字符串(「 享受徒步旅行,瑜伽,網球,地擲球,兩個室外溫水游泳池,皮特染料設計的高爾夫球場, Spa Aiyana和標誌性的蜜蜂體驗。「)它會在染後染上任何想法?並感謝! – Alex

+0

不知道。你得到一個PHP錯誤或警告? –

0

它可能沒有任何問題,但瀏覽器正在顯示它。請確保你的頁面有這個,你的print_r之前或您的var_dump數組:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

+0

是的,我使用print_r和查看源代碼。我應該可能提到文本也被髮送到gd,所以在這種情況下meta標籤將不起作用。 – Alex

+0

你有沒有試過utf8_encode()/ utf8_decode()這個字符串? – pp19dd

+0

是的,這產生了不同的結果,其中最接近我的是「染料?設計」。我只是假設編碼是utf8,因爲有幾個谷歌搜索...你認爲這有可能是一個不同的編碼? – Alex