これは問題です:jQuery ajax特殊文字の問題
私は自分のPHPページにフォームを持っています。ユーザーが名前を入力すると、press(submitボタンのjQueryクリックイベント)は、情報を収集し、$ .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データベース内の完全にガベージに提出するとき。現時点では、デンマークの文字æ、ø、åを手に入れようとしています。
Atm私のmysqlデータベースがUTF-8を使用していて、私のindex.phpのメタヘッダーがこのようになっていることは知っています(すべてのページはindex.phpページから生成されます... ex index.php?page = random ):
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
しかし、nothingsが動作します。私が投稿するとき: "æÆ-øØ-åÅ"をデータベースに保存します: "Ã|Æâ-¸Ã~-ãÃ..."。 誰も私が何をしなければならないか知っていますか?
EDIT 1:
私は私が間違っているだけでなく(上記のコードの行13)にディスプレイを$ signupFormを設定し、HTMLを提出成功AJAXでそれを見ることができますが(それは通常、いくつかのデンマーク語の単語のWHERE I )言及したデンマークの文字を書く
EDIT 2()は一つの解を見つけた:
私は方法を見つけました。 $ .ajax()はjQueryの文書に従って、常にデータをUTF8として解析します。私はなぜこれが私のコードを混乱させるのかわかりませんが、* utf8_decode($ name)*を追加すると、正しく解析されました(私のcharsetは何とかISO-8859-1に設定されているはずですか? )。これは、以前のcharset ISO-8859-1を元に戻して、すべてのutf8_encode()関数を削除することができたので、簡単になりました。
私の最後の問題は、「EDIT 1」で発表された問題でした。
function decode_utf8(s){
return decodeURIComponent(escape(s));
}
私はまだそれに取り組んで、ちょうど私が "æÆøØåÅ"をSQL文に追加すると、それでも間違って表示されることがわかりました。そう、それはデータベースです。しかし、私のメタヘッダーでUTF-8を使用しているときに、どのような文字セットを設定する必要がありますか?ちょうど「UTF-8」ですか? –
そうだと思います。私は通常照合のためにUTF8-Unicodeを使用します。 – Rijk
phpmyadminを介して私のDBをJusted chekc:MySQLの文字セット:UTF-8 Unicode(utf8)そうではない:S –