我遇到了一个类似的问题,描述在这里(以及其他地方) - 在ajax回调中,我得到了一个xmlhttp.responseText的响应文本,它看起来很正常(当我alert它时,它显示正确的文本),但是当使用“if”语句将其与字符串进行比较时,它返回false。
(我也是编写返回该字符串的服务器端代码的人) - 经过多次研究该字符串后,我发现该字符串的第一个字符是一个“不可见字符”。一个不显示的字符。如果我将它复制到记事本中,然后删除第一个字符-它不会被删除直到再次按下Delete键。
我对xmlhttp.responseText中返回的字符串进行了charCodeAt(0)。并且它返回65279。
搜索发现它是某种UTF-8控制字符,应该设置“大端”或“小端”编码。
所以,现在我知道了问题的原因-但是......为什么那个字符正在被回显? 在源PHP中,我只是使用。
(我也是编写返回该字符串的服务器端代码的人) - 经过多次研究该字符串后,我发现该字符串的第一个字符是一个“不可见字符”。一个不显示的字符。如果我将它复制到记事本中,然后删除第一个字符-它不会被删除直到再次按下Delete键。
我对xmlhttp.responseText中返回的字符串进行了charCodeAt(0)。并且它返回65279。
搜索发现它是某种UTF-8控制字符,应该设置“大端”或“小端”编码。
所以,现在我知道了问题的原因-但是......为什么那个字符正在被回显? 在源PHP中,我只是使用。
echo 'the string'...
它似乎输出了[chr(65279)]这个字符,为什么?我该如何避免这种情况?