Я столкнулся с аналогичной проблемой, описанной здесь (и в других местах) - где, как и при обратном вызове ajax, я получаю xmlhttp.responseText, который выглядит нормально (когда я его предупреждаю - он показывает правильный текст), но при использовании оператора "if" для сравнения с строкой - он возвращает false.
(Я тоже тот, кто написал код на стороне сервера, возвращающий эту строку) - после многого изучения строки - я обнаружил, что строка имеет "невидимый символ" в качестве первого символа. Персонаж, который не был показан. Если я скопировал его в Блокнот, то удалил бы первый символ - он не будет удаляться, пока не будет повторно нажат Delete.
Я сделал charCodeAt (0) для возвращаемой строки в xmlhttp.responseText. И он вернул 65279.
Googling показывает, что это какой-то управляющий символ UTF-8, который должен устанавливать кодировку "big-endian" или "small-endian".
Итак, теперь я знаю причину проблемы, но... почему этот символ повторяется? В исходном php я просто использую
echo 'the string'...
и он, по-видимому, каким-то образом выводит [chr (65279)] строку...
Почему? И как я могу избежать этого?