2009-06-13 40 views
0

我有一個奇怪的問題,我似乎無法確定原因。爲什麼使用Zend_Currency打印GBP符號時,我得到一個帶重音符號的A?

當我使用Zend_Currency將值格式化爲GBP時,我在£符號前得到一個帶重音符號的A.如果要求它返回任何其他curreny,如USD,則重音A會消失。

所產生這個代碼是:

$currency = new Zend_Currency('en_GB'); 
$amount = $currency->toCurrency($value); 

這顯示

£ 500.00 

如果我設置爲en_US我得到

$ 500.00 

爲什麼這可能是任何想法?

謝謝...

回答

3

'有趣'的字符通常是編碼/顯示問題。確保您將腳本設置爲以UTF8格式輸出 - 請檢查您的HTML/Xml標頭/內容類型。

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

檢查您的頁面的字符編碼。

0

它正在輸出一個雙字節字符作爲井號,而瀏覽器沒有看到它 - 因爲它看到它是兩個單字節字符。

檢查您的腳本和網頁的其餘部分是否同意使用哪個代碼頁。舉例來說,如果Zend_Currency的功能是假設(或已被告知)UTF8,那麼你需要在頁面的是這樣的:

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

當您檢查您的編碼,你需要做的HTTP標頭也匹配。如果您的服務器將頁面發送爲ISO8891,並且您的HTML自定義爲UTF8,則在某些瀏覽器中可能會遇到問題,請選擇不正確的編碼。

在php中,您可以使用內建函數header()向客戶端發送http標頭。例如;

header('Content-Type: text/html; charset=utf-8'); 
0

我剛剛有這個問題,因爲上面提到的編碼問題。我能夠解決它使用以下代碼段

html_entity_decode("&#xA3;", ENT_COMPAT, 'ISO-8859-1'); 

blog post詳細談到它。

相關問題