这些是什么ASCII字符?

时间:2011-03-25 17:02:48

标签: php string ascii

我有两个字符需要在php-string中进行搜索和替换。

  1. 不知何故,这些与以下不同:

    1. '
    2. "
    3. 有谁知道我可能会用什么函数从php字符串中删除它们?

5 个答案:

答案 0 :(得分:2)

当有人在Outlook中向您发送电子邮件时会发生这种情况,因此请注意,因为您完全错过了那些单引号的开头对,并且双引号结束了对。 But really, you need to be using html entity codes

为什么呢?因为在荒野中有比你上面发布的那两个代码更多的地狱,事实上,你只显示了一组报价(即,你错过了收盘单引号,并打开双引号) 。有数百个,你需要以比字符串替换更好的方式对它们进行编码。

有几种方法可以管理从编码到html实体的翻译。

http://php.net/manual/en/function.htmlentities.php

http://piology.org/entities.html

http://konieczny.be/unicode.html

还有更多,但他们基本上做同样的事情。

答案 1 :(得分:1)

在保存为UTF-8的PHP脚本中(以便正确地重新呈现这些字符),您只需使用str_replace去除它们。

答案 2 :(得分:1)

你所拥有的是智能引号或引号。有人在做类似的事情。 Chris Shiflett

答案 3 :(得分:0)

检查一下,我一直在使用它并且它有效:

How To Clean Special Characters From PHP String

答案 4 :(得分:0)

为什么不使用str_replace

$new_str = str_replace(array('’', '“'), '', $str);

当然,这需要将PHP脚本保存为UTF-8。


如果这不起作用,因为这些字符无法使用UTF-8正确编写,您将不得不回退使用它们的十六进制表示。

例如:

$new_str = str_replace(array('\xC2\x91', '\xC2\x93'), '', $str);

(不确定我使用的十六进制值是否真的是你的两个特殊引号)