alex2005 Δημοσ. 16 Σεπτεμβρίου 2009 Δημοσ. 16 Σεπτεμβρίου 2009 Καλησπέρα παιδιά, Έστω ότι έχουμε μία σελίδα σε utf-8 και θέλουμε να κάνουμε submit μία φόρμα με AJAX. Κανονικά ο browser θα έπρεπε να χρησιμοποιήσει το encoding της σελίδας για να κάνει encode το url μέσω του οποίου με get στέλνουμε τα δεδομένα της φόρμας. Οι Firefox,Opera, Chrome, Safari και Konqueror φαίνεται ότι τα κάνουν όλα καλά. Ο ΙΕ8 δεν στέλνει τα δεδομένα με το σωστό encoding με αποτέλεσμα στον server να μην μπορώ να διαβάσω σωστά τις παραμέτρους. Στον server τρέχω php5.2. Έχω φάει άπειρες ώρες στο google, και φαίνεται πως είναι γνωστό πρόβλημα. Λύση όμως δεν έχω βρει. Ευχαριστώ
parsifal Δημοσ. 16 Σεπτεμβρίου 2009 Δημοσ. 16 Σεπτεμβρίου 2009 http://www.programmersheaven.com/mb/ajax/344436/344436/ienetscape-utf-8-encoding-not-working-for-ajax/?S=B20000 Κάνει λόγο για χρήση της encodeURI() function της JS. Είναι δηλαδή μία υλοποίηση τούτου εδώ, αν κατάλαβα καλά.
alex2005 Δημοσ. 16 Σεπτεμβρίου 2009 Μέλος Δημοσ. 16 Σεπτεμβρίου 2009 Δοκίμασε με post αν γινεται... Από όσο ξέρω δεν γίνεται να στείλω κάτι σε post με AJAX. http://www.programmersheaven.com/mb/ajax/344436/344436/ienetscape-utf-8-encoding-not-working-for-ajax/?S=B20000 Κάνει λόγο για χρήση της encodeURI() function της JS. Είναι δηλαδή μία υλοποίηση τούτου εδώ, αν κατάλαβα καλά. To encodeURI δεν αλλάζει το encoding του request, απλά κάνει escape τα special characters (συμπεριλαμβανομένων και των unicode characters). Αυτό σημαίνει πως αν τα δεδομένα της φόρμας θέλω να τα συγκρίνω (εν ολίγης select statement) με τα δεδομένα μίας utf-8 βάσης δεδομένων δεν θα δουλέψει, και αυτό είναι το όλο πρόβλημα. Αυτό που πρακτικά ψάχνω είναι να θέσω το encoding του request. Θεωρητικά υπάρχει το setRequestHeader(....) στην javascript, αλλά για κάποιον λόγο ούτε αυτό γουστάρει ο ΙΕ8. Υ.Γ. Κάπως πρέπει να δουλεύει αυτό, γιατί και το insomnia χρησιμοποιεί AJAX για την γρήγορη απάντηση στα threads. Και μια χαρά δουλεύει αν γράφουμε στα Ελληνικά. Επίσης χρησιμοποιείτε και utf-8 encoding και php. Οπότε η λύση πρέπει να βρίσκεται μέσα στην σελίδα που επικοινωνούμε τώρα EDIT: Παρεμπιπτόντως βλέπω πως στο insomnia για την λειτουργία που περιέγραψα πριν χρησιμοποιήτε PHP.urlencode("...."). Να υποψιαστώ πως αυτό κάνει την δουλειά ? Μπορείς ρε parcifal να δεις λίγο τι κάνει αυτό το function σε παρακαλώ ? . ΓΙατί κάπου είναι κρυμένο αυτό το function σε κάποιο imported script και δεν μπορώ να το δω. Ευχαριστώ
devnull Δημοσ. 16 Σεπτεμβρίου 2009 Δημοσ. 16 Σεπτεμβρίου 2009 Από όσο ξέρω δεν γίνεται να στείλω κάτι σε post με AJAX. Check your documentation my friend. The XMLHttpRequest Object does support POST and GET. You need to simulate a POST request that will be sent via XHR. There are books describing the way to do it.
automat Δημοσ. 26 Σεπτεμβρίου 2009 Δημοσ. 26 Σεπτεμβρίου 2009 αν πρόκειτε για ελληνικά μόνο, μπορείς να φτιάξεις και ένα function να σου μετατρέπει τους χαρακτήρες
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.