负号被腐蚀的PHP

时间:2012-02-28 14:50:01

标签: php regex ascii corruption

嘿,我有以下代码,我用它来隔离用于二次公式的b c变量。

    $equation = '-5x^2–3x+4';
    $pattern = '/(?:^|[^\^])((?:\- *)?\d+)/';
    preg_match_all($pattern, $equation,  $pieces);
    if (substr($equation, 0) == 'x') 
    {
        $pieces_final[0][0] = 1;
        $pieces_final[0][1] = $pieces[0][0];
        $pieces_final[0][2] = $pieces[0][1];

    } 
    else 
    {
        $pieces_final = $pieces;
    }       
    print_r($pieces_final);

并且它不起作用,它显示了一个奇怪的ascii角色来取代三个前面的负号,我真的不知道可能是什么错误。

1 个答案:

答案 0 :(得分:2)

这不是一个负号。

>>> hex(ord(u'–'))
'0x2013'
>>> unicodedata.name(u'–')
'EN DASH'