str_replace('Ê','',$line);
不工作。是否有一些特殊的字符串代表?
答案 0 :(得分:3)
您需要考虑要操作的字符串的编码。如果没有使用与上面声明的字符串相同的字符编码进行编码,则需要在两种编码之间进行转换。
最常见的错误是数据或文件采用UTF-8编码,另一种采用ISO 8859-1编码。
答案 1 :(得分:2)
目前尚不清楚你是否知道这一点,但str_replace不能“就地”工作,它会返回一个新字符串,所以你真正需要的就是
$line=str_replace('Ê','',$line);
另一种可能性是你正在研究一种结合了变音符号的Unicode,它实际上是两个unicode字符--E和旋律变音符号。
答案 2 :(得分:0)
尝试使用preg_replace:
$line = preg_replace('/Ê/ui', '', $line);
答案 3 :(得分:0)
我认为这是多字节字符,所以请尝试mb functions
答案 4 :(得分:0)
我必须先将线路转换为UTF-8。
mb_convert_encoding($line, "UTF-8")
所以我最终得到的代码是:
$line = str_replace('Ê','', mb_convert_encoding($line, "UTF-8"));
回答我自己的问题只是为了获得“解决方案”而不是评论。谢谢Gumbo。