JpGraph eksik karakter

1 Cevap php

Ben Windows ve kullanımları üzerinde çalışan bir web sitesi var cp1252 (aka Win-1252) bu yüzden İspanyolca karakterleri görüntüleyebilir. App JpGraph 2.3 ile bazı araziler oluşturur. Bu araziler metin etiketleri görüntülemek için Tahoma Open Type font ailesini kullanacaktır. Strings ANSI (yani, cp1252) sağlanan ve yazı tipi dosyaları (aslında, *. Ttf dosyalarını sistemin font klasörüne kopyalanan) CP1252 destekliyoruz.

Bu PHP/5.2.6 gelen PHP/5.3.0 için çeşitli kurulumları ince çalışıyor. Tüm ASCII olmayan eksik veya bilinmeyen karakter temsil boş bir dikdörtgene değiştirilir: I PHP/5.3.1 altında app koştu zaman sorunlar başladı.

JpGraph belgelerine uluslararası karekter beklediği konusunda çok kesin değildir. Görünüşe göre, metin UTF-8 beklediğini imagettftext () fonksiyonu, tarafından dahili olarak işlenir. UTF-8 tüm sistemlerde uygulama tatili Ancak, her şeyi şifreleyen. ANSI iyi çalışmak için kullanılan yerlerde, yanlış karakter olsun (yerine Ê Ú). Ben karakter eksik var nerede, şimdi ben bir PHP hatası alıyorum:

Warning: imagettftext(): any2eucjp(): something happen

Eğer ASCII olmayan karakter üzerinde render etkiliyor olabilir 5.3.1 için PHP/5.3.0 den GD2 değişti ne hakkında herhangi bir ipucu var mı? Nasıl Win-1252 charset dizeleri ile JpGraph beslemek bekleniyor ki?

Update

Kesin, konu JpGraph ile ilgili değildir. Ben imagettftext basit bir arama ile () sorunu yeniden:

<?php

$im = imagecreatetruecolor(400, 30);

$white = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);

//$text = 'áéíóú ÁÉÍÓÚ'; # ANSI
$text = utf8_encode('áéíóú ÁÉÍÓÚ'); # UTF8

$font = '/path/to/tahomabd.ttf';
imagettftext($im, 15, 0, 10, 25, $black, $font, $text);

header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);

?>

PHP/5.3.0 yılında ANSI ve UTF-8 hem doğru metni işlemek. PHP/5.3.1 yılında ANSI yanlış karakterleri işler ve UTF-8 any2eucjp(): something happen iç hata tetikler. Ben bir hata isabet var diyebilirim ki ...

1 Cevap

Benim bulguların bir özeti:

  1. Muhtemelen PHP/5.3.1 içinde (ya da benim PHP/5.3.1 ikili yapı içinde) bir hata var; PHP/5.3.2 artık karekter özlüyor ya bir uyarı atar.
  2. Bir geçici çözüm sayısal HTML elemanları ile ASCII olmayan karakterleri kodlamak için.