我刚刚使用jQuery创建了我的第一个ajax函数,它实际上可以工作,但不幸的是字符编码(如ä,ö,ü,ß,č,ć,å,ø)非常困难。
我的文件和数据库都是UTF-8。我尝试了许多选项在ajax函数和PHP函数中,但都不令人满意。
这是我的ajax函数:
var dataString = {
'name': name,
'mail': mail
// other stuff
}
$.ajax({
type: "POST",
url: "/post.php",
data: dataString,
contentType: "application/x-www-form-urlencoded;charset=UTF-8",
cache: false,
success: function(html){
// do stuff
}
我已经尝试过不使用contentType: "application/x-www-form-urlencoded;charset=UTF-8",并尝试使用encodeURIComponent()来包装受影响的数据,但这两种方法都没有起作用。
当我在我的php中使用htmlentities()时,我的umlauts在纯文本中看起来像这样: UE Ã�, AE Ã�, OE Ã�, ue ü, ae ä, oe o
在数据库中看起来像这样: UE Ãœ , AE Ä, OE Ö, ue ü, ae ä, oe o
如果我不使用htmlentities()而是使用mysql_real_escape_string()(或者都不用),它们在纯文本中看起来很好,但在数据库中看起来像这样: AE Ä, OE Ö, UE Ãœ, ae ä oe ö ue ü
我已经尝试了很多选项几个小时了,但我找不到一个有效的解决方案。目前,我似乎唯一的选择是让它们在数据库中看起来像一团糟,但如果这些数据集需要被编辑,那将是非常低效的。