Google Chart ve Türkçe karakter sorunu

-->

Google’ın bence süper hizmetlerinden biri de verileri kolayca grafik şeklinde yayınlamaya olanak tanıyan Google Chart. Çok basit bir kullanımı olan bu hizmette sadece düzgün bir URL yazmanız yeterli. Yanlız şöyle bir sıkıntı ile karşılaştım: Türkçe karakterler doğal olarak URL tanımında yok! mesela Söyle bir URL yazdık:

http://chart.apis.google.com/chart?cht=p3&chd=t:2,1,3 &chs=500×100&chl=Beğendim|Beğenmedim|farketmez

Yani üç boyutlu pasta şeklinde (cht=p3), değerleri text olarak 2,1,3 şeklinde tanımlanmış (chd=t:2,1,3) , 500*100 piksel boyutlarında (chs=500×100), etiketleri “Beğendim, Beğenmedim, farketmez” (chl=Beğendim|Beğenmedim|farketmez) şeklinde tanımlanan bir grafik çizdirmek istedik. Sonuç aşağıda gördüğünüz gibi ‘ğ’ karakteri ‘?’ işareti çıktı.

Bunu düzeltmek için bulduğum çözüm URL encoding. Yani Türkçe karakteri karşı tarafına anlayacağı şekilde dönüştürmek. Başıma geldi oradan biliyorum, çözümü de PHP yazdığımufak bir kod ile aştım, Umarım işinize yarar:

<?php
$url="http://chart.apis.google.com/chart?cht=p3&chd=t:2,1,3 &chs=500x100&chl=Beğendim|Beğenmedim|farketmez" ;
$turkishchar = array("ç","Ç","ğ","Ğ","ı","İ","ö","Ö","ş","Ş","ü","Ü"," ");
$encodechar= array("%C3%A7", "%C3%87", "%C4%9F", "%C4%9E", "%C4%B1", "%C4%B0", "%C3%B6", "%C3%96", "%C5%9F", "%C5%9E", "%C3%BC", "%C3%9C", "%20");
$freshurl = str_replace($turkishchar, $encodechar, $url);
?>

Sonuç:
http://chart.apis.google.com/chart?cht=p3&chd=t:2,1,3 &chs=500×100&chl=Be%C4%9Fendim|Be%C4%9Fenmedim|farketmez

Comments are closed.