Aksan ve mb_substr ile Problem

2 Cevap php

I mb_substr fonksiyonunu kullanarak aksan ile unicode dize dilimleme ama ben basit bir substr işlevi kullanmak gibi çalışır. Bu yarım görüntüleyen soru işaretli elmas unicode karakterler böler.

Örneğin

echo mb_substr('ááááá', 0, 5); //Displays áá�

Ne yanlış olabilir?

2 Cevap

I mb_substr : it defaults, at least on my server, to ISO-8859-1 için son parametre olarak kodlaması belirtmek yoksa ben aynı sorun var.


But, if I set the encoding properly, to UTF-8, it works OK :

echo mb_substr('ááááá', 0, 5, 'UTF-8');

Tarayıcıda sağ ekranı alır:

ááááá


See mb_substr (quoting, emphasis mine) :

string mb_substr  ( string $str  , int $start  [, 
    int $length  [, string $encoding  ]] )

The encoding parameter is the character encoding. If it is omitted, the internal character encoding value will be used.

Ben aynı sorunu vardı ve yukarıdaki cevaplar beni çok yardımcı oldu. php.ini ayarını kullanarak veya yanındaki ini_set() , it may also help to use mb_internal_encoding('utf-8'); çokbaytlı fonksiyonları kalıcı kodlama ayarı için (utf-8 seçtiğiniz değiştirilecektir olabilir).