我正在使用西裏爾字母保加利亞字符串。php utf-8問題:UTF-8無處不在,但mb_strpos始終=== false。爲什麼?
我想比較$words[$i]
(加入:$詞語是一個字符串數組,$字[$ i]爲一個字符串),如果它包含來自$cyrillic_symbols
符號。
$cyrillic_symbols="абвгдежз"; //OK!
$siglesymb=mb_substr($words[$i],9,1,'UTF-8'); //OK! "д" letter received.
echo $siglesymb; //and д displayed in the browser, OK!
echo mb_strpos($cyrillic_symbols,$siglesymb,0,'UTF-8');
沒有顯示,因爲我認爲它是== false
。我不明白爲什麼。
echo mb_strpos($cyrillic_symbols,"д",0,'UTF-8');
與前述相同,但其結果是因爲在「абвгдежз」д的第五個位置的不false
,但4。
總的結果是:д4
。爲什麼?
爲什麼結果不是д44
?
任何想法如何使它д44
?
發佈您的示例$ words [$ i] –
echo「
」。$ i。「
」; echo $ words [$ i]; – Haradzieniec
這是$ i和$ words [$ i]的值,如您所問: echo「
」。$ i。「
」; echo $ words [$ i]; & l t ; b & g t ;добр& l t ;/B & g t ; //(刪除空格),信д是從0 其餘所有起始號碼9是相同的:一旦你替換 「д」 對一個變量$ siglesymb實際上應該是「д」,mb_strpos在字符串中找不到它。 – Haradzieniec