8

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

例如:

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

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

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

4

2 回答 2

21

正确的

if (mb_strlen($name, 'UTF-8') < 3) is sufficient enough

确保标题正确

HTTP-header (Content-Type: text/html; charset=UTF-8)

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

strlen(utf8_decode($string))

UTF-8 到 PHP 中的代码点数组转换器

于 2010-09-04T04:27:52.700 回答
1

除了JapanPro 的回答:
您的 HTML 可以有:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

而不是隐式标头声明:

HTTP-header (Content-Type: text/html; charset=UTF-8)
于 2012-07-28T12:39:47.227 回答