Хорошо, вот в чем проблема:
У меня есть форма на моем 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 ) );
}