Почему при печати символа GBP с использованием Zend_Currency я возвращаю акцентированный символ A? - PullRequest
0 голосов
/ 13 июня 2009

У меня странная проблема, которую я не могу определить причину.

Когда я использую Zend_Currency для форматирования значения в GBP, я получаю акцентированный знак A перед символом £. Если попросить вернуть любую другую валюту, такую ​​как доллары США, акцентированный A исчезнет.

Код, который генерирует это:

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

Отображает

£ 500.00

Если установить en_US, я получу

$ 500.00

Есть идеи, почему это может быть?

Спасибо ...

Ответы [ 5 ]

3 голосов
/ 13 июня 2009

«забавные» символы обычно являются проблемой кодирования / отображения. Убедитесь, что вы устанавливаете скрипт для вывода в формате UTF8 - проверьте заголовки HTML / Xml / тип содержимого.

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
1 голос
/ 13 июня 2009

Когда вы проверяете свою кодировку, вам также нужно, чтобы HTTP-заголовки совпадали. Если ваш сервер отправляет страницу в формате ISO8891, а ваш HTML-код самопределяется как UTF8, у вас могут возникнуть проблемы в некоторых браузерах, при выборе неправильной кодировки.

В php вы можете использовать встроенную функцию header() для отправки http-заголовков клиенту. например,

header('Content-Type: text/html; charset=utf-8'); 
0 голосов
/ 05 октября 2009

У меня только что была эта проблема из-за проблемы кодирования, упомянутой выше. Я смог решить эту проблему, используя следующий фрагмент

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

Это сообщение в блоге подробно об этом говорит.

0 голосов
/ 13 июня 2009

Он выводит двухбайтовый символ для знака фунта, и браузер не видит его таким - он видит его как два однобайтовых символа.

Убедитесь, что ваш сценарий и остальная часть веб-страницы согласны с тем, какая кодовая страница используется. Например, если функция Zend_currency предполагает (или была проинформирована) UTF8, то вам нужно что-то вроде этого на странице:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
0 голосов
/ 13 июня 2009

Проверьте кодировку символов для страницы.

...