问问题
155 次
3 回答
0
你应该改变
$columnarray[$i] = str_replace("‘", "", $columnarray[$i]);
至
$columnarray[$i] = str_replace("'", "", $columnarray[$i]);
于 2013-10-23T13:36:31.307 回答
0
撇号是数字排版最大的痛点之一,基本上就是这个原因。有两个常见的变体(印刷 = 卷曲,打字机 = 直),你设法在你的问题中使用了这两个变体,每个变体中的两个(左和右),以及至少三个看起来相似的字符,通常误用在撇号的位置(素数、冲绳、坟墓)。在维基百科或无数打字爱好者网站上阅读更多信息。
最简单的解决方案是利用传递str_replace
值数组的能力来查找:
$apostrophes = array(
"curly-left" => "‘",
"curly-right" => "’",
"straight-left" => "'",
"straight-right" => "'",
"prime" => "′",
"okina" => "ʻ",
"grave" => "`"
);
$columnarray[$i] = str_replace($apostrophes, "", $columnarray[$i]);
于 2013-10-23T14:38:01.973 回答
0
您str_replace
正在寻找文字‘
而不是它所代表的字符,这就是它没有被替换的原因。您需要将其转换为字符并使用它。我相信您想使用chr()
您可以通过使用确切找出该字符的代码ord()
您将需要使用 ord() 来确定代码是什么。您也可以使用html_entity_decode
您的角色不是 Ascii 代码。
$character = html_entity_decode('‘', ENT_COMPAT, 'utf-8');
str_replace($character, "", $columnarray[$i]);
找到正确的代码转储html_entity_decode($columnarray[$i])
并查看代码是什么并在上面的代码中替换。
于 2013-10-23T13:49:27.710 回答