PHP中的奇怪破折号字符
我的文本中有一个奇怪的破折号,在PHP中的奇怪破折号字符,php,Php,我的文本中有一个奇怪的破折号,在str\u replace中没有检测到 以下是一个例子: Sun:10:00–下午3:00 我不知道这里是否会出现破折号。。但当它被插入到我的表中时,它就像一个带有字符0096 它看起来很像一个&ndash-查看源代码时,没有特殊字符,只有破折号 str_replace('–', '', $var); 上面的替换似乎没有抓住它,以前有没有其他人遇到过这种问题?这是一个问题。在php中,获取它的最方便的方法是: 请注意,只有当您的网站编码为UTF-8且编辑器编码(
str\u replace
中没有检测到
以下是一个例子:
Sun:10:00–下午3:00
我不知道这里是否会出现破折号。。但当它被插入到我的表中时,它就像一个带有字符0096
它看起来很像一个&ndash代码>-查看源代码时,没有特殊字符,只有破折号
str_replace('–', '', $var);
上面的替换似乎没有抓住它,以前有没有其他人遇到过这种问题?这是一个问题。在php中,获取它的最方便的方法是:
请注意,只有当您的网站编码为UTF-8且编辑器编码(或stru\u replace
的第三个参数的编码)也为UTF-8时,这才有效。如果您使用另一种编码(并且您应该对网站和编辑器使用相同的编码),请将html_entity_decode的第三个参数替换为其名称。En-
我们习惯于看到的破折号
Em–
破折号,我们应该在使用“-”的地方大部分时间使用该破折号
基本上,这是一个语法问题
阅读维基百科:
在mac电脑上(使用US键盘布局),我会让它按Alt+-,就像你用shift键一样+_
你不需要对它进行任何特殊处理,因为它是一些中国符号。它是一个有效字符。将其视为:str_replace('-','em dash')代码>
杰伊建议
$str = str_replace(chr(150), '-–', $str); // endash
$str = str_replace(chr(151), '--', $str); // emdash
另一种选择是,如果其他答案对你不起作用,就像我的情况一样,这对我有效
$title = "Hunting, Tactical & Outdoor Optics eCommerce Store ΓÇô $595,000 ΓÇö SOLD";
$title = str_replace(html_entity_decode('–', ENT_COMPAT, 'UTF-8'), '-', $title);
$title = str_replace(html_entity_decode('—', ENT_COMPAT, 'UTF-8'), '-', $title);
你应该给我们字符串的格式,以便其保留的二进制安全。这使我们能够识别字符。只需询问明显的问题,但您是否保存str_replace的返回值?即,$var=str_替换('-','$var)代码>str_replace不直接对字符串执行操作。表使用的是什么字符集?
$title = "Hunting, Tactical & Outdoor Optics eCommerce Store ΓÇô $595,000 ΓÇö SOLD";
$title = str_replace(html_entity_decode('–', ENT_COMPAT, 'UTF-8'), '-', $title);
$title = str_replace(html_entity_decode('—', ENT_COMPAT, 'UTF-8'), '-', $title);