PHP中的奇怪短划线字符

pdl*_*lol 7 php

我的文字中有一个奇怪的短划线,但是没有被检测到str_replace.

这是一个例子:

Sun: 10:00 – 3:00pm

我不知道破折号是否会显示在这里..但当它插入我的表时,它就像一个带有字符的方框 0096

它看起来很像–- 在查看源代码时,没有特殊字符,只有短划线.

str_replace('–', '', $var);
Run Code Online (Sandbox Code Playgroud)

上面的替换似乎没有抓住它,有没有其他人遇到过这个麻烦?

phi*_*hag 13

那是一个冲刺.在PHP中,最便携的方式是html_entity_decode:

$endash = html_entity_decode('–', ENT_COMPAT, 'UTF-8');
echo str_replace($endash, '(en dash)', 'Sun: 10:00 – 3:00pm');
Run Code Online (Sandbox Code Playgroud)

请注意,这仅适用于您的网站编码为UTF-8 编辑器编码(或第三个参数的编码str_replace)的情况.如果您使用其他编码(并且您应该对网站和编辑器使用相同的编码),请将html_entity_decode的第三个参数替换为其名称.