繁体   English   中英

mb_strlen()就够了吗?

[英]mb_strlen() is it enough?

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

例如:

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

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

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

正确

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

确保标题正确

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

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

strlen(utf8_decode($string))

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

除了JapanPro的答案:
您的HTML可以包含:

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

而不是隐式头声明:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM