在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错了。
答案 0 :(得分:19)
<强>正确强>
if (mb_strlen($name, 'UTF-8') < 3) is sufficient enough
确保标题正确
HTTP-header (Content-Type: text/html; charset=UTF-8)
你也可以出于某种原因检查替代方案
strlen(utf8_decode($string))
答案 1 :(得分:1)
除了 JapanPro的回答:
您的HTML可以包含:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
而不是隐式标头声明:
HTTP-header (Content-Type: text/html; charset=UTF-8)