utf-8(PHP,str_replace)中是否有不同类型的双引号?

Urs*_*Urs 10 php quotes utf-8

在PHP 5.3中,我试图在字符串中替换双引号:

$bar = str_replace('"','\'',$foo);
Run Code Online (Sandbox Code Playgroud)

但是在utf8-Database中保存的一些引用并没有被替换,尽管它们看起来很正常:

"Some text"

我必须搜索不同的字符类型吗?如果是这样,他们是谁?

Jon*_*oni 28

有许多字符看起来像引号,大多数字符很少使用.更经常使用的是这三个:

"   U+0022 QUOTATION MARK
“   U+201C LEFT DOUBLE QUOTATION MARK
”   U+201D RIGHT DOUBLE QUOTATION MARK
Run Code Online (Sandbox Code Playgroud)

一些罕见的是全高报价标记,DITTO标记,双重PRIME,双重报价标记等.Unicode.org"confusables"工具找到15个"与之类似的字符.

为什么不在这里复制并粘贴有问题的字符,以便我们识别它?或者您可以使用HEX函数来获取字符的十六进制编码,这是识别它的另一种方式.

  • 我们用`$ bar = rawurlencode(utf8_decode($ foo))解决了这个问题;`现在,但你的"混乱"链接很棒 (2认同)