这是我的代码
$devmsg = $db->real_escape_string($_POST['devmsg']);
if(strlen($devmsg) <= 200) {
do something
} else {
do some other thing
}
当我添加消息时,一些特殊的字符,例如“(”“”“”“”“”“”{“等等strlen()计算错误..如果我的消息是~160-180个字符长且有特殊字符在其中,if运算符只返回false并转到其他..我认为问题在这里$db->real_escape_string
然后删除它但仍然得到相同的结果。
答案 0 :(得分:3)
可能是UTF-8问题。
首先尝试通过utf8_decode()传递文本:
<?php
$length = strlen(utf8_decode($s));
?>
utf8_decode()
将不在ISO-8859-1中的字符转换为&#39;?&#39;,为了计算,这些字符非常正常。