mb_strlen()就够了吗?

PHP*_*VER 6 php multilingual utf-8 mbstring

在PHP中计算UTF-8字符串的长度时,我使用mb_strlen().

例如:

if (mb_strlen($name, 'UTF-8') < 3) {
    $error .= 'Name is required. Minimum of 3 characters required in name.';
}
Run Code Online (Sandbox Code Playgroud)

由于文本字段可以接受任何语言(多语言),我想确保PHP将正确计算mutltilanguage UTF-8字符.

这是足够的还是我需要使用其他方法?我担心PHP可能由于某种原因弄错了,或者我可能只是持怀疑态度,但我不希望人们绕过重要的验证,因为PHP错了.

Pra*_*pta 19

正确

if (mb_strlen($name, 'UTF-8') < 3) is sufficient enough
Run Code Online (Sandbox Code Playgroud)

确保标题正确

HTTP-header (Content-Type: text/html; charset=UTF-8)
Run Code Online (Sandbox Code Playgroud)

您也可以出于某种原因检查替代方案

strlen(utf8_decode($string))
Run Code Online (Sandbox Code Playgroud)

PHP中的UTF-8到代码点阵列转换器