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

检查页面的字符编码。

于 2009-06-13T15:36:41.770 回答
0

它为井号输出一个双字节字符,而浏览器并没有看到它——它把它看作两个单字节字符。

检查您的脚本和网页的其余部分是否同意正在使用的代码页。例如,如果 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 回答