Προς το περιεχόμενο

Ajax και Ελληνικά


feax2008

Προτεινόμενες αναρτήσεις

  • Moderators
Δημοσ.

Δοκίμασες να χρησιμοποιήσεις το 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"?>';

Δημοσ.

Αυτός είναι ο κώδικας μου 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
Δημοσ.

Δοκίμασε να προσθέσεις και την γραμμή "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]

Δημοσ.

Τελικά δούλεψε με την εντολή:

 

>mysql_query("SET NAMES 'utf8'");

 

Όμως το mysql_client_encoding εξακολουθεί να είναι latin1.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...