stavrosgreenday Δημοσ. 13 Οκτωβρίου 2016 Δημοσ. 13 Οκτωβρίου 2016 (επεξεργασμένο) Καλησπέρα, Φτιάχνω μια εφαρμογή που στηρίζεται στη χρήση google maps και στην εμφάνιση dynamic map markers από αποθηκευμένες τοποθεσίες στη βάση δεδομένων. Χρησιμοποιώ XML για να "μεταφέρω" δεδομένα από PHP σε JAVASCRIPT.Το πρόβλημα που αντιμετωπίζω είναι το παρακάτω: Ενώ όλοι οι πίνακες της βάσης μου καθώς και τα αρχεία του project έχουν utf8 encoding, δεν εμφανίζονται σωστά οι ελληνικοί χαρακτήρες, μόνο αγγλικά ερωτηματικά. Αυτό το έχω παρατηρήσει μόνο στο αρχείο xml (τα αρχεία php/html εμφανίζουν κανονικά τους ελληνικούς χαρακτήρες). Έχω ψάξει πάρα πολύ και δεν βρίσκω άκρη (από χθες το μεσημέρι προσπαθώ να βρω λύση κι έχω χαραμίσει πάνω από 10 ώρες σε αυτό μόνο, γενικά μου έχουν σπάσει τα νεύρα ) και δεν θα έκανα post αν δεν είχα εξαντλήσει το θέμα. Ο κώδικας xml είναι μια παραλλαγή αυτού εδώ https://developers.google.com/maps/articles/phpsqlajax_v3#echoxml . Το μόνο που έχω αλλάξει είναι τα ονόματα για να αντιστοιχούν στην δική μου βάση. Ο κώδικάς μου είναι ο εξής <html><head><meta http-equiv="Content-Type" content="text/xml; charset=utf-8"/> </head> <?php require("phpsqlajax_dbinfo.php"); function parseToXML($htmlStr) { $xmlStr=str_replace('<','<',$htmlStr); $xmlStr=str_replace('>','>',$xmlStr); $xmlStr=str_replace('"','"',$xmlStr); $xmlStr=str_replace("'",''',$xmlStr); $xmlStr=str_replace("&",'&',$xmlStr); return $xmlStr; } // Opens a connection to a MySQL server $connection=mysql_connect ('localhost', $username, $password); if (!$connection) { die('Not connected : ' . mysql_error()); } // Set the active MySQL database $db_selected = mysql_select_db($database, $connection); if (!$db_selected) { die ('Can\'t use db : ' . mysql_error()); } // Select all the rows in the markers table $query = "SELECT * FROM array1 WHERE 1"; $result = mysql_query($query); if (!$result) { die('Invalid query: ' . mysql_error()); } header("Content-type: text/xml"); // Start XML file, echo parent node echo '<markers>'; // Iterate through the rows, printing XML nodes for each while ($row = @mysql_fetch_assoc($result)){ // ADD TO XML DOCUMENT NODE echo '<marker '; echo 'name="' . parseToXML($row['name']) . '" '; echo 'content ="' . parseToXML($row['content']) . '" '; echo 'type="' . $row['type'] . '" '; echo 'longitude="' . $row['longitude'] . '" '; echo 'latitude="' . $row['latitude'] . '" '; echo '/>'; } // End XML file echo '</markers>'; ?> </html> Επεξ/σία 13 Οκτωβρίου 2016 από stavrosgreenday
Luciddream Δημοσ. 13 Οκτωβρίου 2016 Δημοσ. 13 Οκτωβρίου 2016 content="text/xml; charset=utf0" Τι είναι το UTF0
stavrosgreenday Δημοσ. 13 Οκτωβρίου 2016 Μέλος Δημοσ. 13 Οκτωβρίου 2016 content="text/xml; charset=utf0" Τι είναι το UTF0 Χαχα utf-8 ήθελα να γράψω. Το έχω δοκιμάσει σωστά με utf-8 προφανώς και δεν δουλεύει
Luciddream Δημοσ. 13 Οκτωβρίου 2016 Δημοσ. 13 Οκτωβρίου 2016 Χαχα utf-8 ήθελα να γράψω. Το έχω δοκιμάσει σωστά με utf-8 προφανώς και δεν δουλεύει Πάντως το link που δίνεις σου λέει σε άπειρα σημεία ότι αν θέλεις UTF-8 θα πρέπει να χρησιμοποιήσεις to utf8_encode function.
stavrosgreenday Δημοσ. 13 Οκτωβρίου 2016 Μέλος Δημοσ. 13 Οκτωβρίου 2016 Πάντως το link που δίνεις σου λέει σε άπειρα σημεία ότι αν θέλεις UTF-8 θα πρέπει να χρησιμοποιήσεις to utf8_encode function. Το διόρθωσα. Ευχαριστώ πολύ φίλε. Η αλήθεια είναι ότι αφού έβαζα παντού να έχει κωδικοποίηση utf8 δεν το θεώρησα απαραίτητο. Έπρεπε να βάλω mysql_set_charset('utf8'); μετά το query. Και πάλι ευχαριστώ!! 1
Luciddream Δημοσ. 13 Οκτωβρίου 2016 Δημοσ. 13 Οκτωβρίου 2016 Παρόλα αυτά, δεν έχω καταλάβει αυτό που βάζεις το XML μέσα στο HTML. Το έκανες για να το τεστάρεις? Γιατί αλλιώς αν δεν απατώμαι θα στείλει ώς XML όλο το content, μαζί με το <html> head ktlp.
stavrosgreenday Δημοσ. 13 Οκτωβρίου 2016 Μέλος Δημοσ. 13 Οκτωβρίου 2016 Παρόλα αυτά, δεν έχω καταλάβει αυτό που βάζεις το XML μέσα στο HTML. Το έκανες για να το τεστάρεις? Γιατί αλλιώς αν δεν απατώμαι θα στείλει ώς XML όλο το content, μαζί με το <html> head ktlp. Το είχα κάνει γιατί προσπαθούσα να αλλάξω τη κωδικοποίηση σε utf8. Δεν είμαι σίγουρος αν θα γίνει αυτό που λες. Θα στείλω τα δεδομένα του xml στη javascript και θα το τεστάρω τότε συνολικά. 1
defacer Δημοσ. 14 Οκτωβρίου 2016 Δημοσ. 14 Οκτωβρίου 2016 Για την ιστορία πάντως ο κώδικας έχει διάφορα θέματα, με πιο εξώφθαλμα ότι χρησιμοποιεί mysql extension η οποία πλέον επιτέλους έχει αφαιρεθεί τελείως από τις τελευταίες εκδόσεις της PHP η function parseToXML είναι τελείως λάθος (κακό όνομα, bug στην υλοποίηση, και κακή ιδέα να πας να ξανακάνεις κάτι που γίνεται ήδη με τη htmlspecialchars
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα