我有一个奇怪的问题,我似乎无法确定原因。
当我使用Zend_Currency将值格式化为GBP时,我会在£符号前面得到重音A.如果要求它返回任何其他货币,如美元,重音A消失。
生成此代码的代码是:
$currency = new Zend_Currency('en_GB');
$amount = $currency->toCurrency($value);
显示
£ 500.00
如果我设置为en_US,我会
$ 500.00
为什么会出现这种情况的想法?
...谢谢
答案 0 :(得分:3)
'有趣'字符通常是编码/显示问题。确保将脚本设置为输出为UTF8 - 检查HTML / Xml标头/内容类型。
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
答案 1 :(得分:1)
检查编码时,还需要使HTTP标头匹配。如果您的服务器将页面作为ISO8891发送并且您的HTML自我指定为UTF8,则在某些浏览器中可能会出现问题,选择不正确的编码。
在php中,您可以使用header()
内置函数将http标头发送到客户端。例如;
header('Content-Type: text/html; charset=utf-8');
答案 2 :(得分:0)
检查页面的字符编码。
答案 3 :(得分:0)
它正在为井号输出一个双字节字符,浏览器没有看到它 - 它将它视为两个单字节字符。
检查您的脚本和网页的其余部分是否同意正在使用的代码页。例如,如果Zend_currency函数假定(或者已被告知)UTF8,那么你需要在页面中使用类似的东西:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
答案 4 :(得分:0)
我刚遇到这个问题,因为上面提到的编码问题。我能够使用以下代码段来解决它
html_entity_decode("£", ENT_COMPAT, 'ISO-8859-1');
此blog post详细讨论了它。