Как избежать повторения символа 65279 в php? - PullRequest
33 голосов
/ 30 июня 2011

Я столкнулся с подобной проблемой, описанной здесь (и в других местах) - где при обратном вызове ajax я получаю xmlhttp.responseText, который кажется нормальным (когда я его предупреждаю - он показывает правильный текст) - но при использовании оператора 'if' для сравнения его со строкой - возвращается false.

(я также написал код на стороне сервера, возвращающий эту строку) - после большого изучения строки- Я обнаружил, что строка имела «невидимый символ» в качестве первого символа.Персонаж, который не был показан.Если я скопировал его в Блокнот - затем удалил первый символ - он не будет удален, пока снова не нажмем Удалить.

Я сделал charCodeAt (0) для возвращенной строки в xmlhttp.responseText.И он вернул 65279 .

Поиск в Google показывает, что это какой-то управляющий символ UTF-8, который должен устанавливать кодировку "big-endian" или "small-endian".

Итак, теперь я знаю причину проблемы - но ... почему этот персонаж повторяется?В исходном php я просто использую

echo 'the string'...

, и он, очевидно, как-то выводит [chr (65279)] строку ...

Почему?И как мне этого избежать?

Ответы [ 11 ]

0 голосов
/ 30 июня 2011

Возможно что-то на сервере.Если вы знаете, что это там, я бы просто обойти это, пока не решено.

myString = myString.substring(1)

Отрубает первый символ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...