Właśnie stworzył swój pierwszy funkcji ajax z jQuery, która faktycznie działa, ale niestety kodowanie znaków (dla znaków takich jak A, O, U, SS, C, C, A , ø) to koszmar.jQuery: AJAX umlauty i znaki specjalne bałagan
Moje pliki i moja baza danych to wszystkie UTF-8. Próbowałem wielu opcji w funkcji ajax i funkcji PHP, z których żadna nie była zadowalająca.
To mój 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
}
Próbowałem go bez contentType: "application/x-www-form-urlencoded; charset = UTF-8" i starałem się zawinąć dane zaatakowaną w encodeURIComponent(), z których żaden nie działał.
Gdy używam że AJAX z htmlentities() w moim php, moi umlauty wyglądać w postaci zwykłego tekstu: UE A, AE A, œ, UE ¼, ae, oe å¤ o
i tak w bazie: UE & Atilde; OE AE & Atilde; „, OE & Atilde ;, ue & Atilde; & frac14 ;, ae & Atilde; & curren ;, oe o
Jeśli nie używam htmlentities() ale mysql_real_escape_string() zamiast (lub nie), wyglądają dobrze w zwykłym tekście, ale wyglądają tak w bazie danych: AE à ", OE Ã-, UE Ãœ, ae ¤ oe ¶ ue ¼
Próbuję mnóstwo opcji już od wielu godzin, ale nie mogę znaleźć rozwiązania, które działa. Jak dotąd jedyną opcją, którą wydaje mi się, jest to, że wyglądają jak totalny bałagan w bazie danych, ale byłoby to bardzo kontraproduktywne, gdyby te zbiory danych wymagały edycji.
Czy Twoja ostatnia obserwacja nie sugeruje, że problem leży prawdopodobnie w bazie danych (a może w PHP), a nie w jQuery i AJAX? –
Próbowałem zmienić kodowanie bazy danych na latin1, ale nie było żadnej różnicy. – rayne