PHP mb_convert_encoding TÜRKÇE KARAKTER HATASI

Php projelerinde genelde karşılaşılan genel sorunlardan bir tanesi Türkçe karakter hatasıdır. Başka bir siteden veri alırken karakter kodlaması uyuşmazlığından türkçe karakterler yerine soru işareti ( ? ) geldiğini görürüz fakat bu tarz bir sorunu klasik yöntemler ile çözümlenmeyebilir, bunun içinde mevcut bir fonksiyon var Php projelerinizde mb_convert_encoding() fonksiyonunu kullanarak istediğiniz karekter kodlamasından istediğiniz karekter kodlamasına çevirebilirsin. Bu fonksiyonu diğer türkçe karekter problemlerinde de (Veri tabanında türkçe karekter hatasında) kullanabilirsiniz.

Sözdizimi:

mb_convert_encoding ( metin, kodlamaya, kodlamadan)

Paremetreler:

metin : Gereklidir. Karekter dönüşümü yapılacak metin

kodlamaya : Gereklidir. Metnin dönüştürülmekte olduğu kodlama türü.

kodlamadan : İsteğe bağlı. Dönüştürmeden önce karakter kodu adlarıyla belirtilir. Bu, bir dizi veya virgülle ayrılmış numaralandırılmış bir listedir. Belirtilmezse dahili kodlama kullanılacaktır.

"auto" değeri de belirtilebir. Bu takdirde, "ASCII, JIS, UTF-8, EUC-JP, SJIS" algı sırası kullanılır.

Örnek 1:

$str = mb_convert_encoding($_str, "UTF-8", "ISO-8859-9");

Yukarıda ki örnekte Dönüştürülecek olan metni ilk parametreye, hangi karakter setine dönüştüreceğimizi ikinci parametreye, hangi karakter setinden dönüştüreceğimizi ise üçünücü parametreye yazdık.

Gelen verilerin hangi karekter kodlaması olduğunu bilmiyorsak üçünçü paremetreye "auto" değeri belirtebiliriz.

Örnek 2:

$str = mb_convert_encoding($str, "UTF-8", "auto");

Veri tabanından veya başka bir siteden gelen verilerin hangi karekter kodlamasında olduğunu anlayabiliriz. Bunun için mb_detect_encoding()fonksiyonu kullanıyoruz.

Örnek 3:

echo mb_detect_encoding($str); // ÇIKTI : 'UTF-8'

 


2 Yorum

  • kullanıcı / 6 yıl önce

    süpersiniz çok işime yaradı

  • Yorumlayan / 4 yıl önce

    Yorumunuz Onaylandıktan Sonra Yayınlanacaktır.