PHP mb_convert_encoding TÜRKÇE KAREKTER 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'
NOT: Genelde sayfalarda karekter kodlaması olarak UTF-8 ve ISO-8859-9 kullanılır Bunları fonksiyonlarda deneyin.
HTML Sayfalarda Türkçe Karakter Hatasına, Çözüm
HTML 5 kodları kullanılarak oluşturulan sayfalarda eğer Türkçe karakter hatası ile karşılaşıyorsanız aşağıdaki kodu <head> </head> taglarınız arasına yerleştirerek sorunu çözebilirsiniz.
<meta charset="UTF-8"/>
HTML 5 öncesi ile kodlanmış sayfalar için oluşan Türkçe karakter hatası için aşağıdaki kodu kullanarak sorunu çözebilirsiniz.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
PHP Sayfalarda Türkçe Karakter Hatasına, Çözüm
PHP, kodları ile kodlanmış sayfalarda oluşan Türkçe karakter hatası için aşağıdaki header
kodu kullanarak sorunu çözebilirsiniz.
header('Content-Type: text/html; charset=UTF-8');
Veritabanından Oluşan Türkçe Karakter Hatasına, Çözüm
Öncelikle Websayfanız yukarıdaki gösterildiği gibi html veya php sayfaya göre türkçe karekter kodlamasını ekleyin. Veritabanızda karekter kodlamasını utf8-general-ci yaparsanız türkçe hatası yaşamazsınız.
İbrahim Fatih ÇİFTCİ 14/08/2019
Nazar UĞUR 16/12/2020
yönetici 19/12/2020
- HTML
- CSS
- PHP
- JQUERY
- PHOTOSHOP
- JavaScript
- Web Dünyası
- Linux
- MİTHRİL FRAMEWORK
- Laravel
- Git
- React
- HTML LİNK(Bağlantı)EKLEME - LİNK VERME
- HTML YAZI VE RESİM ORTALAMA
- HTML RESME LİNK VERME
- HTML FORM OLUŞTURMA
- CSS YATAY MENÜ YAPIMI
- HTML RESİM EKLEME
- CSS (BOYUT) GENİŞLİK VE YÜKSEKLİK (Width-Height)
- HTML DİV ve SPAN NEDİR?
- HTML ARKAPLANA MÜZİK EKLEME
- KALİTE KAYBETMEDEN RESİMLERİ BÜYÜTME