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