使用破折号无法正常工作

时间:2016-04-19 11:06:19

标签: javascript php parsing explode

我们有这个字符串:“ Il Responsabile della Sicurezza nelle gallerie - 1°PARTE ”我们希望得到它的两部分:

  1. Il Responsabile della Sicurezza nelle gallerie
  2. 1°PARTE
  3. 我们无法在 - char

    上使用explode()

    我们已经看过this,但每个答案都没有为我们工作。

    我们尝试使用javascript但是没有正面结果。

    我们如何解决这个问题?这可能是一个被破坏的问题吗?(目前是ISO-859-1,我们无法改变它)

2 个答案:

答案 0 :(得分:3)

字符串中有“非典型”短划线符号,称为 Unicode字符'EN DASH'(U + 2013)
将其替换为 utf-8 等效,然后,您将能够轻松拆分字符串:

$str = "Il Responsabile della Sicurezza nelle gallerie – 1° PARTE";
$endash = html_entity_decode('–', ENT_COMPAT, 'UTF-8');

$str = str_replace($endash, '-', $str);
print_r(explode("-",$str));

输出:

Array
(
    [0] => Il Responsabile della Sicurezza nelle gallerie 
    [1] =>  1° PARTE
)

http://www.fileformat.info/info/unicode/char/2013/index.htm

答案 1 :(得分:1)

你爆炸的角色不是破折号。

复制并粘贴角色,然后尝试。

更正后的代码:

<?php
$str = 'Il Responsabile della Sicurezza nelle gallerie – 1° PARTE';
$arr = explode('–', $str);
echo '<pre>';print_r($arr);echo '</pre>';
?>

我得到的输出:

Array
(
 [0] => Il Responsabile della Sicurezza nelle gallerie 
 [1] =>  1° PARTE
)