2011-06-06 18 views
12

Subp() işlevini php'de kullandığımda, bu son karakter olduğunda dizenin sonunda bir soru işareti (bir sorguya sahip bir kare - tarayıcıya bağlı olarak) alırım özel bir tane, örn. ö veya ö, vb ...php substr özel bir karakterle sonuç olarak soru işareti

$introtext=html_entity_decode($item->description, ENT_QUOTES, "UTF-8"); 
$introtext=substr($introtext,0,200); 

Bundan nasıl kurtulabilirim? Şimdiden teşekkürler!

cevap

29

dize baytlı kodlama (UTF-8) gibi yapar, böyle sorunları önlemek için mb_substr kullanmalıdır varsa:

$introtext=mb_substr($introtext,0,200); 
+0

teşekkür gibi mb_substr Unicode adı eklemek için,

deneyin işe yaramadı hala yukarıda denenmiş ve! Bu işlevi henüz bilmiyordum. Şimdi iyi çalışıyor! – Bert

+0

Harika! Beklendiği gibi çalışır :) – Can

+0

Bu åäö gibi İskandinav harflerle çalışmaz, utf-8 gibi Sivil A.Suk gibi utf-8'i eklemeniz önerilir – EspeH

4

substr multibyte ile çalışmıyor çünkü o karakter. substr muhtemelen "yarım" bir çokbaytlı karakter kesecek. Bunun yerine mb_substr kullanmalısınız. Ayrıca dosyanızın UTF-8'e kaydedildiğinden emin olun. Birisi durumunda

$introtext = mb_substr($introtext, 0, 200); 
+0

Teşekkürler! Şimdi iyi çalışıyor. – Bert

2

$introtext=mb_substr($introtext, 0, 200, 'utf-8'); 
+1

Kabul edilen cevap benim için işe yaramadı, İskandinav karakterlerle çalışmasını sağlamak için ona ihtiyacım vardı. teşekkür ederim – EspeH

İlgili konular