Php ajax+utf-8:根本无法修改西里尔文字符串(使用substr等),行为奇怪
我切换到utf-8字符集,这里有一个问题 一步一步地,它是如何工作的,它是如何工作的!: -->javascript事件--->使用ajax POST方法发送blahblahblah文本---->part1.php文件接收$comment=$\u POST[comment];成功并在文本区域下方的html页面上显示,没有问题 但是,如果文本没有修改,或者可以修改,但应该只包含英文字母,那么一切都是完美的。否则,页面上会显示矩形,而不是西里尔字母 以下是part1.php的代码和html页面上的几个结果:Php ajax+utf-8:根本无法修改西里尔文字符串(使用substr等),行为奇怪,php,ajax,utf-8,Php,Ajax,Utf 8,我切换到utf-8字符集,这里有一个问题 一步一步地,它是如何工作的,它是如何工作的!: blahblahblah-->javascript事件--->使用ajax POST方法发送blahblahblah文本---->part1.php文件接收$comment=$\u POST[comment];成功并在文本区域下方的html页面上显示,没有问题 但是,如果文本没有修改,或者可以修改,但应该只包含英文字母,那么一切都是完美的。否则,页面上会显示矩形,而不是西里尔字母 以下是part1.php的
$comment=$_POST["comment"];
echo $comment."|".strlen($comment)."|".substr($comment,0,1);
在文本区域输入:你好。文本区域下方显示:hello | 5 | h//OK
在文本区域输入:你好,ааааа。文本区域下方显示:您好,Саааа16 | H//OK
在文本区域中输入:Сааааа。文本区域下方显示:无,页面上的错误显示在浏览器左下方的javascript错误中
如果我删除substr$comment,0,1并写下bааааа,它将显示bаааааа10,没有任何错误
为什么会发生这种情况,所以我无法提取该字符串的任何部分来修改它?。。。有什么想法吗
谢谢。您应该使用和。您应该使用和。谢谢!这正是我需要的!现在它工作了@S B:太好了。我把它作为一个答案,所以你可以接受它,并将这个问题标记为已解决。