2011-05-31 79 views
1

我在打印數組值時遇到了麻煩,它們最初是用ISO-8859-1編碼的,回顯時它們顯示爲「?」。太討厭了!正確回顯數組ISO-8859-1值

我已經字符集定義爲ISO-8859-15

$lang = array(); 

$lang['HOMEPAGE'] = 'âéíó'; 

echo $lang['HOMEPAGE']; 

result: ???? 

任何提示?

它曾經工作,使用utf8_decode();但似乎並沒有解決我的問題。

編輯:

我很好,我定義了ISO-8859-15字符集,但我是其中的「áúóá」字符的文件,因爲餅乾互動的HTML頭之前,嘗試使用ob_start使用Cookie在身上,但仍然錯誤,用header()函數中定義的字符集和運作良好,其他的解決方案是:

echo iconv('ISO-8859-1', 'UTF-8', $lang['PARAGRAFO1']); 
+1

我不知道PHP,但我知道一個人不使用utf8_decode來解碼你說的不是UTF-8的東西!也許你只需要使用正確的解碼功能。 – ikegami 2011-05-31 23:14:40

+0

不要通過編輯問題來編寫解決方案;通過回答寫解決方案!是的,即使它是你自己的。 – 2011-06-01 00:04:53

+0

好的,謝謝你的提示;) – Souza 2011-06-01 01:30:51

回答

1

有在工作中兩種編碼的位置:

  1. 您的文本的編碼,在這種情況下是源代碼。

  2. 該網頁的編碼。確保它也設置爲ISO-8859-1。 將這個元標記在HTML文件的頭部執行編碼:

    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"> 
    
+0

我在頭文件中定義了字符集,我在index.php中包含了文件language.php,index.php在頭文件中包含了該文件。 – Souza 2011-05-31 23:33:33

+0

如果兩個編碼都相同,它應該正確顯示。你確定你的文件是ISO-8859-1嗎?有沒有可能是鬼祟的輸出緩衝繼續進行字符編碼? – Halcyon 2011-05-31 23:38:58

+0

這很奇怪,我用這個字符集定義了兩個文件,輸出不正確。隨着netbeans我改變了charset以及所有文件。我瘋了 – Souza 2011-05-31 23:53:03

0

如果你想爲UTF-8輸出,我建議你添加那些在你最初的PHP腳本

ini_set("default_charset", "UTF-8"); 
mb_internal_encoding("UTF-8"); 

當然,如果需要,您可以更改爲其他字符。