macabre_sunsets Δημοσ. 8 Απριλίου 2009 Δημοσ. 8 Απριλίου 2009 Θέλω να κάνω αναζήτηση με ελληνικούς χαρακτήρες σε MySQL, αλλά δυστυχώς δεν μπορώ να τους διαβάσω σωστά. Το πρόβλημα δεν νομίζω να είναι τόσο στην βάση, όσο στο ότι δεν παίρνει σωστά το string. Τι έχω κάνει μέχρι τώρα... Έχω το ακόλουθο για να κάνω την αναζήτηση. Δεν είναι μέσα σε <form>... Μόνο οι δύο αυτές γραμμές ><input type="text" id="data" value="" /> <input type="button" value="Search" onclick="requestdata()" /> Το οποίο καλεί το παρακάτω JavaScript >function requestdata() { var data= document.getElementById("data").value; http.open("GET", escape(data), true); http.onreadystatechange = handleHttpResponse; http.send(null); } Το οποίο με την σειρά του καλεί μια PHP σελίδα που έχει το εξής >$mydata= $_GET['data']; Όπου data είναι η μεταβλητή που χρησιμοποιώ (mypage.php?data=...). Όταν κάνω >echo $mydata Μου επιστρέφει '%u03C4%u03B5%u03C3%u03C4", αντί για "τεστ" (που έβαλα στην συγκεκριμένη περίπτωση). Έχω βάλει ><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> στο index μου αλλά δεν κάνει τπτ. Επίσης έχω δοκιμάσει να κάνω utf8_encode/utf8_decode την μεταβλητή $mydata, αλλά το αποτέλεσμα δεν άλλαζε. Με λατινικούς χαρακτήρες η αναζήτηση δουλεύει μια χαρά. Έχει κανείς καμια ιδέα για το τι μπορεί να φταίει, ή πώς μπορώ να πάρω τους ελληνικούς χαρακτήρες, χωρίς να χρειάζονται ειδικές function αντιχτοιχίας (πχ το %u03C4 να το κανει τ, το %u03B5 να το κάνει ε και πάει λέγοντας).
bluejeans Δημοσ. 8 Απριλίου 2009 Δημοσ. 8 Απριλίου 2009 για δοκίμασε να κάνεις και save τις σελίδες (html, php) σαν UTF-8 (μπορείς να το κάνεις με notepad ή notepad++) σε κάποια ανάλογη κατάσταση σε εμένα έτσι διορθώθηκε
macabre_sunsets Δημοσ. 8 Απριλίου 2009 Μέλος Δημοσ. 8 Απριλίου 2009 Είναι σε UTF-8 οι σελίδες. Δυστυχώς δεν έφερε κάποιο αποτέλεσμα ούτε αυτό.
sloth Δημοσ. 8 Απριλίου 2009 Δημοσ. 8 Απριλίου 2009 Η escape() είναι που σου προκαλεί αυτό το πρόβλημα. Δοκίμασε να τη βγάλεις και δες πως αντιδράει. Το ξέρω ότι είναι αναγκαίο, αλλά την ίδια ενέργεια/έλεγχο μπορείς να την κάνεις και στο mydata.php. Επίσης δοκίμασε να κάνεις url_decode($data); μέσα στο mydata.php πριν τα κάνεις echo.
macabre_sunsets Δημοσ. 8 Απριλίου 2009 Μέλος Δημοσ. 8 Απριλίου 2009 Άτιμη escape() :/ Ευχαριστώ πολύ, έπαιξε μια χαρά όταν το έβγαλα. Και είχα σκάσει από χτες :/
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.