str_replace("\u00a0", " ", utf8_encode($string))
但是那不能解决。编辑:igh,我是个白痴。 utf8_encode()也不是问题。我以为我在使用该功能,忘记了在代码中禁用它。我的数据正在通过json_encode()进行AJAX请求。 json_encode()有问题吗?我担心我可能会因为滥用堆栈溢出而感到内。我将尝试使用Google搜索。
最终编辑:数据本身存在问题,该数据已从Word文档复制到MySQL表中。所有空格都被复制为不间断空格。很抱歉浪费大家的时间。
str_replace(“ \ u00a0”,“”,utf8_encode($ dat))。但这并不能解决问题。
PHP仅具有字节字符串,而没有本地Unicode字符串;因此,没有\u
转义,而您实际上是在要求它转换输入中的反斜杠-u序列。
要摆脱不间断的空格字符,您必须替换掉\xA0
(如果对传递给utf8_encode
之前的ISO-8859-1数据进行了替换)或\xC2\xA0
(如果在之后转码为UTF-8)。
[utf8_encode
仅将ISO-8859-1转码为UTF-8,它不接触空格,所以我怀疑您的实际数据中有不间断的空格字符。
$str = trim($str, chr(0xC2).chr(0xA0))
$data = str_replace("\xc2\xa0",'',$data)
$json = json_decode($data);