Zend_Currency kullanarak GBP sembolü yazdırırken neden bir bir iade aksanlı olsun?

5 Cevap php

Ben nedenini belirlemek için görünmüyor olabilir aa garip bir sorun var.

Ben GBP için bir değer biçimlendirmek için Zend_Currency kullandığınızda Ben £ sembolü önce aksanlı A olsun. USD gibi başka Curreny dönmek için sorarsanız aksanlı bir kaybolur.

Bu oluşturuyor kodu:

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

Bu görüntüler

£ 500.00

Ben en_US ayarlanırsa alıyorum

$ 500.00

Herhangi bir bu olabilir neden fikirler?

Teşekkürler ...

5 Cevap

'Komik' karakterler genelde bir kodlama / görüntü sorunu vardır. UTF8 olarak çıktı komut ayarı emin olun - HTML / XML başlıkları / içerik türünü kontrol edin.

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

Eğer kodlamayı kontrol zaman, HTTP başlıklarını da maç yapmak gerekir. Sunucu ISO8891 olarak sayfasını gönderiyor ve HTML UTF8 olarak kendini belirten ise, yanlış kodlama seçimi, bazı tarayıcılarda sorunları olabilir.

Php Eğer istemciye http başlıkları göndermek için header() yerleşik işlevini kullanabilirsiniz. örneğin;

header('Content-Type: text/html; charset=utf-8');

Sayfa için karakter kodlamasını kontrol edin.

Bu diyez için bir çift bayt karakter çıktısı ve tarayıcı gibi onu görmeye değil - bu iki tek baytlık karakter olarak görmektir.

Script ve web sayfasının geri kalanı kullanılmakta olduğu kod sayfası hemfikir olduğunu kontrol edin. Zend_currency fonksiyonu üstleniyor (ya da söylendi) UTF8'i Örneğin sonra sayfa en böyle bir şey gerekir:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

Ben sadece bu sorunu ve onun çünkü yukarıda belirtilen kodlama sorunu vardı. Ben aşağıdaki kod parçasını kullanarak çözmeyi başardı

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

Bu blog post detaylı olarak bahsediyor.