feax2008 Δημοσ. 9 Απριλίου 2008 Δημοσ. 9 Απριλίου 2008 Πώς σετάρουμε μία εφαρμογή ajax ώστε να επιστρέφει ελληνικά και όχι ερωτηματικά?
Moderators Praetorian Δημοσ. 9 Απριλίου 2008 Moderators Δημοσ. 9 Απριλίου 2008 Δοκίμασες να χρησιμοποιήσεις το UTF-8? Θα χρειαστείς στο php να έχεις ένα > <head> .... <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"> ... </head> και στο επιστρεφόμενο xml (που δημιουργείται από php) κάτω από το header: > echo '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>';
feax2008 Δημοσ. 9 Απριλίου 2008 Μέλος Δημοσ. 9 Απριλίου 2008 Αυτός είναι ο κώδικας μου php. Το αρχείο είναι αποθηκευμένο σε utf-8. Το αρχείο html περιέχει το το meta utf-8 charset. Η βάση δεδομένων και οι πίνακες είναι σε utf8_unicode.ci. Αν γράψω ελληνικά όπως παρακάτω μέσα στο php αρχείο εμφανίζονται σωστά. Οι γραμμές του πίνακα που επιστρέφονται και περιέχουν ελληνικά εμφανίζονται με ερωτηματικά. Προσπάθησα να βάλω στον παρακάτω κώδικα τα strings <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> αλλά δεν λειτούργησε. ><?php $dbhost = "****"; $dbuser = "****; $dbpass = "****"; $dbname = "****"; //Connect to MySQL Server mysql_connect($dbhost, $dbuser, $dbpass); //Select Database mysql_select_db($dbname) or die(mysql_error()); // Retrieve data from Query String $age = $_GET['age']; $sex = $_GET['sex']; $wpm = $_GET['wpm']; // Escape User Input to help prevent SQL Injection $age = mysql_real_escape_string($age); $sex = mysql_real_escape_string($sex); $wpm = mysql_real_escape_string($wpm); //build query $query = "SELECT * FROM ajax_example WHERE ae_sex = '$sex'"; if(is_numeric($age)) $query .= " AND ae_age <= $age"; if(is_numeric($wpm)) $query .= " AND ae_wpm <= $wpm"; //Execute query $qry_result = mysql_query($query) or die(mysql_error()); //Build Result String $display_string = "<table>"; $display_string .= "<tr>"; $display_string .= "<th>Name</th>"; $display_string .= "<th>Age</th>"; $display_string .= "<th>Sex</th>"; $display_string .= "<th>WPM</th>"; $display_string .= "</tr>"; // Insert a new row in the table for each person returned while($row = mysql_fetch_array($qry_result)){ $display_string .= "<tr>"; $display_string .= "<td>$row[ae_name]</td>"; $display_string .= "<td>$row[ae_age]</td>"; $display_string .= "<td>$row[ae_sex]</td>"; $display_string .= "<td>$row[ae_wpm]</td>"; $display_string .= "</tr>"; } echo "Query: " . $query . "<br />"; echo "Ερώτημα: " . $query . "<br /><br />"; $display_string .= "</table>"; echo $display_string; ?>
Moderators Praetorian Δημοσ. 9 Απριλίου 2008 Moderators Δημοσ. 9 Απριλίου 2008 Δοκίμασε να προσθέσεις και την γραμμή "Set names...." > //Connect to MySQL Server mysql_connect($dbhost, $dbuser, $dbpass); //Select Database mysql_select_db($dbname) or die(mysql_error()); [b]mysql_query("SET NAMES 'utf8'");[/b]
feax2008 Δημοσ. 9 Απριλίου 2008 Μέλος Δημοσ. 9 Απριλίου 2008 Τελικά δούλεψε με την εντολή: >mysql_query("SET NAMES 'utf8'"); Όμως το mysql_client_encoding εξακολουθεί να είναι latin1.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.