好奇是否有人知道 max_length[n] 和 min_length[n] 函数中内置的 codeigniter 表单验证是否将 unicode 字符计为 1 个字符,或者使用的所有字符的总和是否表示 unicode 字符?
我注意到当我对字符串进行 var_dump 时,它会计算所有字符,只是想知道 code igniter 或 php 是否有内置函数来计算 unicode 字符?
谢谢。
好奇是否有人知道 max_length[n] 和 min_length[n] 函数中内置的 codeigniter 表单验证是否将 unicode 字符计为 1 个字符,或者使用的所有字符的总和是否表示 unicode 字符?
我注意到当我对字符串进行 var_dump 时,它会计算所有字符,只是想知道 code igniter 或 php 是否有内置函数来计算 unicode 字符?
谢谢。
您可以进行自己的回调验证:
$this->form_validation->set_rules('rule', 'The rule', 'callback_checkUnicode');
并检查 unicode 字符串>
public function checkUnicode($string)
{
if (strlen($string) != strlen(utf8_decode($string)))
{
//is unicode: add your own counter condition here
return true;
}
return false
}
Codeigniter 使用 php 的 mb_strlen 如果它在你的 php 安装中可用,它允许传递编码参数,否则它默认为 php 的基本 strlength,它不允许你传递字符串编码。问题是 CI 不能让你传递 max_length[n] 的可能编码...
如果您需要它来补偿编码,最好只使用原始 php 滚动您自己的验证。