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