substr UTF-8 Karakter Sorunu

PHP’nin substr, strtolower, ucfirst gibi string fonksiyonlarinda utf-8 kodlama problemleri yaşanabiliyor. substr fonksiyonundaki sorun, fonksiyonun her karakteri 1 Byte olarak kabul etmesinden kaynaklanır. Halbuki UTF-8 karakterler 1 ile 4 Byte arasında değişir. Bu nedenle aşağıdaki sonuç ortaya çıkar. Neyseki çözüm basit :).

$string = 'Çemişgezek';
echo substr($string, 0, 5); // çıktı olarak Çemi� verir

Çözüm için substr yerine mb_substr fonksiyonunu kullanmalıyız. Ayrıca mb_substr fonksiyonuna verdiğimiz stringin de UTF-8 kodlu olduğunu belirtmeliyiz.

echo mb_substr($string, 0, 5, 'UTF-8'); // çıktı olarak Çemiş verir

One thought on “substr UTF-8 Karakter Sorunu”

Leave a Reply

Your email address will not be published. Required fields are marked *