0

原因を特定できないような奇妙な問題があります。

Zend_Currency を使用して値を GBP にフォーマットすると、£ 記号の前にアクセント付きの A が表示されます。USD などの他の通貨を返すように要求すると、アクセント付きの A が消えます。

これを生成しているコードは次のとおりです。

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

これは表示されます

£ 500.00

en_US に設定すると、

$ 500.00

なぜこれが考えられるのでしょうか?

ありがとう...

4

5 に答える 5

3

「変な」文字は、通常、エンコード/表示の問題です。スクリプトを UTF8 として出力するように設定していることを確認してください - HTML/Xml ヘッダー/コンテンツ タイプを確認してください。

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
于 2009-06-13T15:37:21.563 に答える
1

エンコーディングを確認するときは、HTTPヘッダーも一致させる必要があります。サーバーがページをISO8891として送信し、HTMLがUTF8として自己指定している場合、一部のブラウザーで問題が発生し、誤ったエンコードを選択している可能性があります。

PHPでは、組み込み関数を使用してheader()httpヘッダーをクライアントに送信できます。例えば;

header('Content-Type: text/html; charset=utf-8'); 
于 2009-06-13T15:43:52.627 に答える
0

ポンド記号の2バイト文字を出力しており、ブラウザはそれをそのように認識していません-2つのシングルバイト文字として認識しています。

スクリプトと残りのWebページが、使用されているコードページと一致していることを確認してください。たとえば、Zend_currency関数がUTF8を想定している(または伝えられている)場合は、ページの次のようなものが必要です。

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
于 2009-06-13T15:40:43.117 に答える
0

この問題が発生したのは、上記のエンコーディングの問題が原因です。次のスニペットを使用して解決できました

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

このブログ投稿では、それについて詳しく説明しています。

于 2009-10-05T17:41:40.787 に答える
0

ページの文字エンコードを確認してください。

于 2009-06-13T15:36:41.770 に答える