如何在PHP中获取字符串的确切长度?

Dai*_*ail 1 php

我有奇怪的结果:

strlen("òàùè")

如何使用no-ascii字符正确计算字符串?

我也看了mb_strlen()但没有解决问题.

谢谢

Gor*_*don 11

mb_strlen

返回字符串$ str 中包含字符编码$ encoding的字符数.多字节字符计为1.

你的内部编码可能没有设置为utf-8,所以也是如此

echo mb_strlen('òàùè', 'utf8');
Run Code Online (Sandbox Code Playgroud)

或者在全球范围内设置utf8:

mb_internal_encoding('utf8');
Run Code Online (Sandbox Code Playgroud)

然后呢

echo mb_strlen("òàùè");
Run Code Online (Sandbox Code Playgroud)

会给4(演示)