Проблема со специальными символами jQuery ajax

Хорошо, вот в чем проблема:

У меня есть форма на моем php страницу. Когда пользователь ввел имя, нажатие кнопки отправки jQuery click событие (на кнопке отправки) собирает информацию и передает ее через $ .ajax ().

$.ajax({
    url: "ajax/addGatheringSignup.php",
    type: "POST",
    async: true,
    dataType: 'json',
    data: {
        "id":           $_GET['id'],
        "name":         $signupNameInput.val()
    },
    success: function(jsonData){
        if(jsonData[0].feedback == "ok"){
            $signupForm = $('#singupform');
            $signupForm.html('Signup successful!');
        }else{
            Alert(jsonData[0].feedback);
        }
    },
    error: function(){
        Alert("error alert");
    }
});

Как видите, поле «имя» - это значение из поля ввода имени. Но когда я отправляю это на свою страницу php (где я ничего не форматирую в тексте), это полный мусор в моей базе данных MySql. Сейчас я пытаюсь заставить работать датские буквы æ, ø и å.

Я знаю, что моя база данных mysql использует UTF-8 и мой мета-заголовок для моего индекса.php выглядит так (каждая страница создается из страницы index.php ... например index.php? page = random):

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Но ничего не работает. Когда я отправляю: «-øØ-åÅ» в базу данных, он сохраняется как: «Ã¦Ã † -øØ-à ¥ Ã…». кто-нибудь знает, что мне делать?

РЕДАКТИРОВАТЬ 1:

Я вижу, что при успешной отправке ajax html, я установил $ signupForm в (строка 13 в коде выше), также отображается неправильно (обычно это некоторые датские слова, где я пишу упомянутые датские символы)

РЕДАКТИРОВАТЬ 2 (найдено одно решение):

Я нашел способ. $ .ajax () согласно jQuery doc,всегда анализирует данные как UTF8. Я не знаю, почему это испортило мой код, но когда я добавил * utf8_decode ($ name) * в функцию добавления, он правильно проанализировал (так что я предполагаю, что моя кодировка должна быть установлена ​​на ISO-8859-1 каким-то образом? ). Это просто упростило задачу, так как я мог снова включить мою старую кодировку ISO-8859-1 и удалить все мои функции utf8_encode ().

Моей последней проблемой была проблема, представленная в «РЕДАКТИРОВАТЬ 1». Здесь я нашел решение о том, как преобразовать строки UTF8 (опять же из-за $ .ajax ()):

function decode_utf8( s ){
    return decodeURIComponent( escape( s ) );
}
5
задан Thor A. Pedersen 20 September 2011 в 13:46
поделиться