麻烦取代MS" smart"引用php

时间:2017-09-28 14:34:20

标签: php str-replace

在尝试将数据导出到CSV文件之前,我尝试使用this link中的解决方案从字符串中删除Microsoft智能引号。但是,它似乎并不适合我。

这是我的代码:

$Wp_NewsText = str_replace(
    array(chr(145), chr(146), chr(147), chr(148), chr(151)),
    array("'", "'", "\"", "\"", "-"),
    $Wp_NewsText
);

但出于某种原因,下载仍包含智能引号。我认为可能是这样,因为CSV需要双引号作为分隔符,它以某种方式将引号恢复为智能引号,所以我尝试了这个:

$Wp_NewsText = str_replace(
    array(chr(145), chr(146), chr(147), chr(148), chr(151)),
    array("'", "'", """, """, "‐"),
    $Wp_NewsText
);

但那并没有解决问题。所以我尝试将实际字符复制粘贴到数组中:

$Wp_NewsText = str_replace(
    array(chr(145), chr(146), chr(147), chr(148), chr(151), "“", "”"),
    array("'", "'", """, """, "‐", """, """),
    $Wp_NewsText
);
但是,唉,还是没有运气。最后,我尝试了JSON编码/解码所有内容,因为显然速度更快,但我希望它可能会有一些其他有用的副作用使代码工作。

$Wp_NewsText = json_decode(
    str_replace(
        array(chr(145), chr(146), chr(147), chr(148), chr(151), "“", "”"),
        array("'", "'", """, """, "‐", """, """),
        json_encode($Wp_NewsText)
    )
);

不。

我尝试替换这些字符的实际字符串如下:

  

“从这些先进的汽车技术开发计划中收集到了重要的知识产权;不仅仅是追求无声的动力传动系统,我们正在集中精力,“Setter说。”

编辑:如果重要,我的所有代码和文字都是UTF-8编码。

0 个答案:

没有答案