我切换到utf-8字符集,这里有一个问题…
一步一步地工作(它确实工作了!):
& lt;Textarea name="comment">blahblahblah -----> javascript事件----->使用ajax POST方法发送blahblahblah文本-----> part1.php文件成功接收$comment=$_POST["comment"];并在文本区域下面的html页面上显示它,没有问题。
但是如果文本没有修改,或者可以修改,但应该只包含英文字母,那么一切都是完美的。否则,页面上将显示矩形,而不是西里尔字母。
这里是part1.php的代码和几个HTML页面的结果:
$comment=$_POST["comment"];
echo $comment."|".strlen($comment)."|".substr($comment,0,1);
在文本区输入:"Hello"。显示在文本区下面:hello|5|h//OK
在文本区输入:"Hello,Варна"。显示在文本区下面:Hello,Варна|16|H//OK
在文本区输入:"Варна"。显示在textarea下面:none, "Error on page"显示在浏览器的左下方,就像javascript错误一样。
如果我删除substr($comment,0,1)
并写入"Варна",它将显示Варна|10,没有任何错误。
为什么会发生这种情况,所以我不能提取字符串的任何部分来修改它?什么好主意吗?
谢谢。
您应该使用 mb_strlen
和 mb_substr
。