我的文本中有一个奇怪的短划线,在str_replace中没有检测到.
这是一个例子:
太阳:10:00-3:00
我不知道破折号是否会显示在这里..但当它插入我的表时,它就像一个方形框,字符0096
它看起来很像& ndash; – 查看源时,没有特殊字符,只有短划线.
str_replace('–','',$var);
上面的替换似乎没有抓住它,有没有其他人在此之前遇到过这个问题?
这是一个
en dash.在PHP中,最便携的方式是使用
html_entity_decode
:
$endash = html_entity_decode('–',ENT_COMPAT,'UTF-8'); echo str_replace($endash,'(en dash)','Sun: 10:00 – 3:00pm');
请注意,这仅适用于您的网站编码为UTF-8且编辑器编码(或str_replace的第三个参数的编码)的情况.如果您使用其他编码(并且您应该对网站和编辑器使用相同的编码),请将html_entity_decode的第三个参数替换为其名称.