2011-10-27 83 views
1

我有一個奇怪的結果:如何在PHP中獲取字符串的確切長度?

strlen("òàùè")

我怎麼能指望與沒有-ASCII字符正確字符串?

我也看了mb_strlen()但沒有解決問題。

感謝

+2

你在做什麼編碼?什麼是奇怪的結果?如果你使用'mb_strlen()'會發生什麼? –

+0

你忘記了一些東西。 –

+0

我得到字符數* 2 – Dail

回答

11

mb_strlen

返回字符串$海峽字符具有字符編碼$編碼的數量。多字節字符被計數爲1。

你的內部編碼很可能沒有設置爲UTF8,所以做

echo mb_strlen('òàùè', 'utf8'); 

或設置UTF8全局:

mb_internal_encoding('utf8'); 

和那麼做

echo mb_strlen("òàùè"); 

會給4(demo