Tôi vừa tạo hàm ajax đầu tiên với jQuery thực sự hoạt động, nhưng tiếc là mã hóa ký tự (đối với các ký tự như ä, ö, ü, ß, č, ć, å , ø) là một cơn ác mộng.jQuery: AJAX umlauts & ký tự đặc biệt là một mớ hỗn độn
Tệp của tôi và cơ sở dữ liệu của tôi đều là UTF-8. Tôi đã thử vô số các tùy chọn trong hàm ajax và hàm PHP, không cái nào trong số đó là thỏa đáng.
Đây là ajax tôi
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
}
Tôi đã thử nó mà không contentType: "application/x-www-form-urlencoded; charset = UTF-8" và tôi đã cố gắng để quấn dữ liệu bị ảnh hưởng trong encodeURIComponent(), không cái nào trong số đó hoạt động.
Khi tôi sử dụng AJAX với htmlentities() trong php của tôi, âm sắc của tôi trông như thế này trong văn bản đơn giản: UE Ã, AE Ã, OE Ã, ue ¼, ae ä, oe o
và như thế này trong cơ sở dữ liệu: UE & Atilde; œ, AE & Atilde; “, OE & Atilde ;, ue & Atilde; & frac14 ;, ae & Atilde; & Curren ;, oe o
Nếu tôi không sử dụng htmlentities() nhưng mysql_real_escape_string() thay vào đó (hoặc không), chúng trông đẹp trong văn bản thuần túy, nhưng chúng trông giống như thế này trong cơ sở dữ liệu: AE à „, OE Ö, UE Ãœ, ae ä oe ö ue ü
Tôi đã thử hàng tấn tùy chọn trong nhiều giờ, nhưng tôi không thể tìm được giải pháp hoạt động. Cho đến nay, lựa chọn duy nhất tôi dường như có là chúng trông giống như một mớ hỗn độn trong cơ sở dữ liệu, nhưng điều đó sẽ rất có hiệu quả nếu các tập dữ liệu đó cần được chỉnh sửa.
Quan sát cuối cùng của bạn có cho thấy vấn đề có thể xảy ra với cơ sở dữ liệu (và có lẽ là PHP) hơn là với jQuery và AJAX không? –
Tôi đã thử thay đổi mã hóa cơ sở dữ liệu thành latin1, nhưng không có sự khác biệt – rayne