为什么PHP的爆炸错误?

这里是PHP代码:

var_dump($value);
string(103) "0e0cUZ‚dddd.is.moar.awesome‚A6A32C2074B787893DF506F6F466F5919516C44F3"
var_dump(explode(',', $value));
array(1) {
  [0]=>
  string(103) "0e0cUZ‚dddd.is.moar.awesome‚A6A32C2074B787893DF506F6F466F5919516C44F3"
}

为什么不是在逗号分隔的字符串?


因为你想要explode()的字符串中的字符不是逗号 - 嗯,不是一个ASCII逗号: , (十进制代码点44 )。 字符串中的逗号是一个Unicode字符'SINGLE LOW-9 QUOTATION MARK'(十进制代码点8218 )。

在你的JavaScript控制台中试试这个:

> '‚' === ','
  false

经过大量调查,真正的问题是输入字符串是在Windows-1252编码中。 因此,试图取代U + 201A,直到我先将它转换为unicode才奏效。

链接地址: http://www.djcxy.com/p/92673.html

上一篇: Why is PHP's explode wrong?

下一篇: Outputting HTML with echo considered bad practice in PHP?