NELER YENI?
Yukleniyor...

PHP karakter kodlamasını değiştirme.


PHP ile çalışırken excelden veya başka bir veritabanından,tablodan (Mysql,Mssql v.s.) veri kullanabilirsiniz. Bunu yaparken aldığınız verilerin karakter kodlaması farklı olabilir örneğin sizin kendi veritabanızda veya sayfanızda kullandığınız karakter kodlamasını UTF-8 veya UTF-8 unicode olduğunu düşünelim. Ancak kaynak olarak kullandığınız veriler ISO-8859-9 olduğunu var sayalım. Verileri direk değişkene alıp sayfada göstermek veya veritabanına kaydetmek özellikle türkçe karakterlerde dil kodlama sorunu yaşatacaktır.


Tek başına mb_detect_encoding() fonksiyonunu kullanmak her zaman işe yaramaz. Çünkü bu fonksiyonda karakter kodlama yanlış algılanabilir. Bu yüzden algılaması gerektiği karakter kodlamalara ilk önce bir sıra vereceğiz.


mb_detect_order("ISO-8859-9,UTF-8");
Bu fonksiyonda daha fazla karakter kodlama tipi kullanabilirsiniz ben örnek olarak iki tane yaptım. Algılanacak ilk karakter kodlamayı ISO-8859-9 olarak başlat dedim böylece ilk bu karakter kodlamayı algılayacaktır diğer türlü kendisinin bir default sıralaması olduğundan farklı bir kodlama algılıyor ve daha fazlasını denemiyor. İkinci olarak ta UTF-8 olarak algıla dedim ama tabi bunun bir tesiri yok zaten kodlama UTF 8 ise bu fonksiyonları kullanmanıza gerek kalmayacaktır. Tabi şuanda ISO-8859-9 dan UTF-8 çevrimini anlatıyorum tam tersini de yapabilirsiniz. Bundan sonra asıl kodumuzu yazabiliriz.

mb_convert_encoding($cevirlecekdata,"UTF-8",mb_detect_encoding($cevrilecekdata));
Yazılım dillerinde işlem sağdan sola doğru çalıştığından ilk önce mb_detect_encoding ile verinin belirlediğimiz sıralamayla hangi kodlama olduğunu çözecek mb_convert_encoding fonksiyonuda bu veriyi UTF-8'e çevirecektir. mb_convert_encoding te parametreler şöyledir; mb_convert_encoding($veri, 'cevrilecek_kodlama', 'cevrilen_kodlama');

Sıralamayı deneme yanılma yaparak da sonunda sorunu çözmüş olacaksınız.

0 yorum:

Yorum Gönder