我在ubuntu机器上安装了xampp。我发现is_numeric
函数返回FALSE
的unicode字符串数。例如۳۴۵۳
3453
返回FALSE
,转换为int
会将所有unicode数字字符串评估为0
。我迁移到linux系列操作系统不到一周。在此之前它在我的Windows机器上工作正常,一切都很好。我的问题有什么解决方案?
答案 0 :(得分:0)
首先按settype
将Unicode编号۳۴۵۳
设置为整数,然后使用is_numeric
进行验证。
修改1
首先,您需要转换为正确的UTF-8
,然后您可以验证为整数。
if(!mb_check_encoding($content, 'UTF-8')
OR !($content === mb_convert_encoding(mb_convert_encoding($content, 'UTF-32', 'UTF-8' ), 'UTF-8', 'UTF-32'))) {
$content = mb_convert_encoding($content, 'UTF-8');
if (mb_check_encoding($content, 'UTF-8')) {
// log('Converted to UTF-8');
} else {
// log('Could not converted to UTF-8');
}
}
return $content;
}
取自here