Специальные символы разрыва json возвращены в jQuery - PullRequest
2 голосов
/ 17 августа 2011

Следующая функция jQuery ajax запускает скрипт PHP, который запрашивает базу данных MySQL, содержащую записи в кодировке UTF-8:

function searchLocations() {

    var stateSelected = $("#stateSelect").val();

    $.ajax({
        url: 'ajax/json.php',
        dataType: 'json',
        data: 'state='+stateSelected,
        success: function(data) {
            placeMarkers(data.markerdata.markers);
        }
    });

}

Объект JSON, возвращаемый функции, содержит долготы и широты объектов маркеров карты, а также имя, отображаемое в информационном окне при нажатии каждого маркера.

Каждое имя загружается нормально и отображается без проблем, за исключением одного имени, которое содержит символ «ñ». Это имя возвращается в объекте JSON как "ноль". Как я могу правильно отобразить это имя?

1 Ответ

0 голосов
/ 17 августа 2011

Раньше у меня была эта проблема, и я обнаружил, что есть два варианта:

  1. В PHP преобразуйте все символы в дружественные HTML-символы, используя функцию PHP htmlentities (http://php.net/manual/en/function.htmlentities.php) перед возвратом в функцию jQuery.
  2. Если это не помогло или символы не были преобразованы, вы можете попробовать использовать кодирование и декодирование base64. В PHP вы можете кодировать данные с помощью функции base64_encode (http://php.net/manual/en/function.base64-encode.php).. Затем в jQuery вы можете использовать один из многих плагинов base64 для кодирования и декодирования для декодирования данных. Я успешно использовал этот плагин в прошлом: http://plugins.jquery.com/project/base64-encode-and-decode

В противном случае, возможно, стоит взглянуть на набор символов, используемый на вашей странице. Попробуйте использовать UTF-8 для кодирования вашего HTML и посмотрите, поможет ли это.

Без использования jQuery и AJAX, если вы создали простую страницу PHP, которая запрашивала данные и выводила имя, оно все равно не отображалось правильно. Если это не так, это также может быть проблема с набором символов в MySQL.

Надеюсь, что любой из этих указателей поможет. Дайте мне знать, как вы поживаете.

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