我用ajax传递一个参数,然后php接收,用var_dump打印出来,长度是41,然后我把同样的字符串拷贝到php,直接var_dump打印出来,长度是42.如下:string(41) "<pclass="xg1">
[data]<spanclass="pipe">"
string(42) "<pclass="xg1">
[data]<spanclass="pipe">"字符串是一样的,长度不一样,不知道为何会造成如此差别,考虑到可能编码不一样,尝试过
接收的时候声明编码,如
header("Content-type: text/html; charset=GB2312");
获取把字符串统一转成一样的编码,都未解决问题。
请问这种情况最有可能的原因是什么?
[data]<spanclass="pipe">"
string(42) "<pclass="xg1">
[data]<spanclass="pipe">"字符串是一样的,长度不一样,不知道为何会造成如此差别,考虑到可能编码不一样,尝试过
接收的时候声明编码,如
header("Content-type: text/html; charset=GB2312");
获取把字符串统一转成一样的编码,都未解决问题。
请问这种情况最有可能的原因是什么?
{
echo ord($s{$i}) . '<br>';
}
window 系统是 回车换行(\r\n)
linux 系统是 换行(\n)正好差一个字符
我感觉可能也是和换行有关系,因为我用一段不带换行的字符串测试的时候,长度就一样了。可是我测试的时候都是window操作系统,为什么有差异呢?
看一下就知道了!
瞎猜有什么用?
$str = str_replace("\n", "\r\n", $str);处理之后,两个字符串就一样了,说实在,怎么这么奇怪,同一个操作系统,怎么js的传过来的这么诡异。