PHP str_replace不替换字符“°”

时间:2017-06-21 17:00:38

标签: php string phpexcel

您好!

我从.xlsx文件中获取字符串 - > "N°X"

我想将"N°"替换为Num_X

我试图用

做到这一点
$var = str_replace("N°","Num_",$var);

但没有任何内容被替换(根据echo $var)   问题来自°,因为当我尝试用其他方法替换一些String时   (没有°)str_replace工作

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

确保输入字符串为UTF8。

$var = "N°X";
print mb_detect_encoding($var);

如果你没有得到UTF-8,请转换它:

$var = mb_convert_encoding($var, 'UTF-8');

然后您的str_replace将按预期工作。

可能对编码问题有所帮助的另一个工具是xxd

php -r '$var = "N°X"; echo $var;' | xxd

应该返回

00000000: 4ec2 b058                                N..X

显示中间字符编码为C2B0十六进制,即 Unicode字符' DEGREE SIGN' (U + 00B0)。 fileformat.info现在很方便。