2009-06-13 2 views
0

私は奇妙な問題を抱えていますが、原因を特定できないようです。Zend_Currencyを使用してGBPシンボルを印刷すると、アクセント記号付きのAが返されるのはなぜですか?

私はZend_Currencyを使用してGBPに値を書式設定すると、£記号の前にアクセント記号付きのAを付けます。 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

ポンド記号に2バイト文字が出力されていて、ブラウザがそれを表示していない - 2つの1バイト文字として表示されています。

スクリプトとWebページの残りの部分で、使用されているコードページが一致していることを確認してください。 UTF8はZend_Currency機能を想定している(または言われている)場合たとえば、あなたはページの中で、このようなものが必要:

<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会談を使用してそれを解決することができました。

関連する問題