Ελληνικοί χαρακτήρες σε MySQL και PHP  Το θέμα επιλύθηκε

...ρύθμιση - εγκατάσταση web server, mail server, ftp server, κλπ

Συντονιστές: the_eye, konnn

Ελληνικοί χαρακτήρες σε MySQL και PHP  Το θέμα επιλύθηκε

Δημοσίευσηαπό zenon » 01 Μάιος 2009, 23:47

Καλησπέρα σας.

Έχω δημιουργήσει μια βάση δεδομένων σε Windows XP σε ΜySQL και επικοινωνεί με PHP. Έχω χρησιμοποιήσει κωδικοποίηση χαρακτήρων utf8_unicode_ci στη βάση δεδομένων και charset=utf8 στην PHP.

Έχω μεταφέρει τη βάση και όλους των κώδικες PHP σε Ubuntu server και τους ελληνικούς χαρακτήρες μέσα στις σελίδες php, τους βλέπω ακαταλαβίστικους όπως και τα δεδομένα στη βάση. Όταν κάνω queries μέσα από php στον browser δε μου επιστρέφει αποτέλεσμα, όπου υπάρχουν ελληνικοί χαρακτήρες.

Μήπως χρειάζεται ν' αλλάξω την κωδικοποίηση;

Θα σας είμαι ευγνώμων αν με βοηθήσετε.

Σας ευχαριστώ πολύ εκ των προτέρων!
zenon
babeTUX
babeTUX
 
Δημοσιεύσεις: 9
Εγγραφή: 01 Μάιος 2009, 23:41
Εκτύπωση

Re: Ελληνικοί χαρακτήρες σε MySQL και PHP

Δημοσίευσηαπό cyberpython » 02 Μάιος 2009, 00:27

Κάθε φορά που κάνεις σύνδεση στο MySQL Server στον κώδικά σου πρέπει να κάνεις ένα "SET NAMES <encoding>" για να ορίσεις την κωδικοποίηση κατά την επικοινωνία.
π.χ.
Κώδικας: Επιλογή όλων
$query = "SET NAMES 'utf8'";
$result = mysql_query($query);


Spoiler: show
(Η παραπάνω απάντηση είναι από εδώ)
Κοινότητα ΕΛ/ΛΑΚ Οικονομικού Πανεπιστημίου Αθηνών / Ubuntu-gr / My Web Log
Επίπεδο Γνώσεων Linux: Μέτριο, Προγραμματισμός: Ναι, Aγγλικά: Καλά
Λειτουργικό : Ubuntu 10.04 - 32bits
Η/Υ : Intel Core2 4400@2 GHz / 2GB DDR2 RAM / GeForce 8400 GS 512MB / Creative SB Audigy SE
Άβαταρ μέλους
cyberpython
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 733
Εγγραφή: 14 Μάιος 2008, 13:22
Εκτύπωση

Re: Ελληνικοί χαρακτήρες σε MySQL και PHP

Δημοσίευσηαπό zenon » 02 Μάιος 2009, 00:31

cyberpython έγραψε:Κάθε φορά που κάνεις σύνδεση στο MySQL Server στον κώδικά σου πρέπει να κάνεις ένα "SET NAMES <encoding>" για να ορίσεις την κωδικοποίηση κατά την επικοινωνία.
π.χ.
Κώδικας: Επιλογή όλων
$query = "SET NAMES 'utf8'";
$result = mysql_query($query);


Spoiler: show
(Η παραπάνω απάντηση είναι από εδώ)

Σ' ευχαριστώ πολύ για την άμεση απάντησή σου!
Εννοείς πριν από κάθε query;
Για παράδειγμα εάν έχω τρία διαφορετικά queries, θα γράψω:
Κώδικας: Επιλογή όλων
$query1 = "SELECT * FROM table1" ;
$query1 = "SET NAMES 'utf8'";
$result1 = mysql_query ($query1); 
$query2 
= "SELECT * FROM table2" ;
$query2 = "SET NAMES 'utf8'";
$result2 = mysql_query ($query2);
$query3 = "SELECT * FROM table3" ;
$query3 = "SET NAMES 'utf8'";
$result3 = mysql_query ($query3); 


Σ' ευχαριστώ πολύ και πάλι!
zenon
babeTUX
babeTUX
 
Δημοσιεύσεις: 9
Εγγραφή: 01 Μάιος 2009, 23:41
Εκτύπωση

Re: Ελληνικοί χαρακτήρες σε MySQL και PHP

Δημοσίευσηαπό linuxman » 02 Μάιος 2009, 02:41

Όχι δεν χρειάζεται όλα αυτά να κάνεις απλά άνοιξε τα αρχεία php με το gedit editor και μετά κάνε αποθλυκευση σε utf-8 όπως είναι και default on Ubuntu , απλά στο αποτέλεσμα τις σελίδας θα πρέπει να δώσεις και κάτι σαν τα παρακάτω
Κώδικας: Επιλογή όλων

<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta http-equiv="content-style-type" content="text/css" />
<meta http-equiv="content-language" content="el" />
Οδηγίες προς Νεοεισερχόμενους
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Linux Mint 17.1 Rebecca 3.13.0-37-generic 64bit (el_GR.UTF-8, X-Cinnamon cinnamon)
3 Intel Core i5-2310M CPU @ 2.10GHz ‖ RAM 3866 MiB ‖ Dell Inc. 0D7C51 - Dell Inc. Dell System Vostro 3750
4 Intel 2nd Generation Core Processor Family Integrated Graphics [8086:0116] {i915}
5 wlan0: Intel Centrino Wireless-N 1030 [Rainbow Peak] [8086:008a] (rev 34) ⋮ eth0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 06)
http://www.greeklug.gr
Άβαταρ μέλους
linuxman
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10378
Εγγραφή: 10 Μάιος 2008, 20:41
Τοποθεσία: Thessaloniki / Macedonia / Greece
Εκτύπωση

Re: Ελληνικοί χαρακτήρες σε MySQL και PHP

Δημοσίευσηαπό zenon » 02 Μάιος 2009, 18:32

linuxman έγραψε:Όχι δεν χρειάζεται όλα αυτά να κάνεις απλά άνοιξε τα αρχεία php με το gedit editor και μετά κάνε αποθλυκευση σε utf-8 όπως είναι και default on Ubuntu , απλά στο αποτέλεσμα τις σελίδας θα πρέπει να δώσεις και κάτι σαν τα παρακάτω
Κώδικας: Επιλογή όλων

<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta http-equiv="content-style-type" content="text/css" />
<meta http-equiv="content-language" content="el" />

Σ' ευχαριστώ πολύ για τη βοήθειά σου!
Επειδή δεν μπορώ να τα δοκιμάσω τώρα απ' το σπίτι, γιατί σε άλλο υπολογιστή υπάρχει ο ubuntu server, θα τα φτιάξω και θα τα δοκιμάσω τη Δευτέρα. Εύχομαι να λειτουργούν :)

Σ' ευχαριστώ πολύ και πάλι!
Καλό απόγευμα και ο Θεός μαζί σου!
zenon
babeTUX
babeTUX
 
Δημοσιεύσεις: 9
Εγγραφή: 01 Μάιος 2009, 23:41
Εκτύπωση

Re: Ελληνικοί χαρακτήρες σε MySQL και PHP

Δημοσίευσηαπό cyberpython » 02 Μάιος 2009, 19:31

zenon έγραψε:
Σ' ευχαριστώ πολύ για την άμεση απάντησή σου!
Εννοείς πριν από κάθε query;
Για παράδειγμα εάν έχω τρία διαφορετικά queries, θα γράψω:
Κώδικας: Επιλογή όλων
$query1 = "SELECT * FROM table1" ;
$query1 = "SET NAMES 'utf8'";
$result1 = mysql_query ($query1); 
$query2 
= "SELECT * FROM table2" ;
$query2 = "SET NAMES 'utf8'";
$result2 = mysql_query ($query2);
$query3 = "SELECT * FROM table3" ;
$query3 = "SET NAMES 'utf8'";
$result3 = mysql_query ($query3); 


Σ' ευχαριστώ πολύ και πάλι!


Όχι, θα πρέπει να το προσθέσεις αμέσως μόλις γίνει η σύνδεση στο MySQL server (αμέσως επόμενη εντολή). Βασικά, δοκίμασε πρώτα αυτό που πρότεινε ο linuxman.
Κοινότητα ΕΛ/ΛΑΚ Οικονομικού Πανεπιστημίου Αθηνών / Ubuntu-gr / My Web Log
Επίπεδο Γνώσεων Linux: Μέτριο, Προγραμματισμός: Ναι, Aγγλικά: Καλά
Λειτουργικό : Ubuntu 10.04 - 32bits
Η/Υ : Intel Core2 4400@2 GHz / 2GB DDR2 RAM / GeForce 8400 GS 512MB / Creative SB Audigy SE
Άβαταρ μέλους
cyberpython
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 733
Εγγραφή: 14 Μάιος 2008, 13:22
Εκτύπωση

Re: Ελληνικοί χαρακτήρες σε MySQL και PHP

Δημοσίευσηαπό zenon » 02 Μάιος 2009, 20:00

Καλησπέρα cyberpython.

Εντάξει, σ' ευχαριστώ πολύ, να 'σαι καλά!
zenon
babeTUX
babeTUX
 
Δημοσιεύσεις: 9
Εγγραφή: 01 Μάιος 2009, 23:41
Εκτύπωση

Re: Ελληνικοί χαρακτήρες σε MySQL και PHP

Δημοσίευσηαπό linuxman » 03 Μάιος 2009, 00:58

cyberpython έγραψε:
zenon έγραψε:
Σ' ευχαριστώ πολύ για την άμεση απάντησή σου!
Εννοείς πριν από κάθε query;
Για παράδειγμα εάν έχω τρία διαφορετικά queries, θα γράψω:
Κώδικας: Επιλογή όλων
$query1 = "SELECT * FROM table1" ;
$query1 = "SET NAMES 'utf8'";
$result1 = mysql_query ($query1); 
$query2 
= "SELECT * FROM table2" ;
$query2 = "SET NAMES 'utf8'";
$result2 = mysql_query ($query2);
$query3 = "SELECT * FROM table3" ;
$query3 = "SET NAMES 'utf8'";
$result3 = mysql_query ($query3); 


Σ' ευχαριστώ πολύ και πάλι!


Όχι, θα πρέπει να το προσθέσεις αμέσως μόλις γίνει η σύνδεση στο MySQL server (αμέσως επόμενη εντολή). Βασικά, δοκίμασε πρώτα αυτό που πρότεινε ο linuxman.

Είναι λύση καλή , απλά με αυτά την έχω πατήσει όταν είχα όλα σε utf-8 , mysql , php4 , server , άλλα σελίδα έπρεπε να παίζει το iso8859-7 και είχα δώσει με αυτό που λες , είναι καλή λύση και εάν έχεις και php4 ειδικά και mysql βάση σε iso8859-7 , σε Ubuntu Server μίας και από την αρχή αν είναι 8.04 και πάνω έχει από την αρχή utf-8 όλα και στην mysql , locales , php , apache2 και το μόνο που πρέπει να έχουμε είναι σωστά τα php scripts με utf-8
@zenon βάλε το Geany από την Προσθαφαίρεση , είναι πολύ καλό editor .
Οδηγίες προς Νεοεισερχόμενους
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Linux Mint 17.1 Rebecca 3.13.0-37-generic 64bit (el_GR.UTF-8, X-Cinnamon cinnamon)
3 Intel Core i5-2310M CPU @ 2.10GHz ‖ RAM 3866 MiB ‖ Dell Inc. 0D7C51 - Dell Inc. Dell System Vostro 3750
4 Intel 2nd Generation Core Processor Family Integrated Graphics [8086:0116] {i915}
5 wlan0: Intel Centrino Wireless-N 1030 [Rainbow Peak] [8086:008a] (rev 34) ⋮ eth0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 06)
http://www.greeklug.gr
Άβαταρ μέλους
linuxman
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10378
Εγγραφή: 10 Μάιος 2008, 20:41
Τοποθεσία: Thessaloniki / Macedonia / Greece
Εκτύπωση

Re: Ελληνικοί χαρακτήρες σε MySQL και PHP

Δημοσίευσηαπό zenon » 03 Μάιος 2009, 01:08

linuxman έγραψε:
cyberpython έγραψε:
zenon έγραψε:
Σ' ευχαριστώ πολύ για την άμεση απάντησή σου!
Εννοείς πριν από κάθε query;
Για παράδειγμα εάν έχω τρία διαφορετικά queries, θα γράψω:
Κώδικας: Επιλογή όλων
$query1 = "SELECT * FROM table1" ;
$query1 = "SET NAMES 'utf8'";
$result1 = mysql_query ($query1); 
$query2 
= "SELECT * FROM table2" ;
$query2 = "SET NAMES 'utf8'";
$result2 = mysql_query ($query2);
$query3 = "SELECT * FROM table3" ;
$query3 = "SET NAMES 'utf8'";
$result3 = mysql_query ($query3); 


Σ' ευχαριστώ πολύ και πάλι!


Όχι, θα πρέπει να το προσθέσεις αμέσως μόλις γίνει η σύνδεση στο MySQL server (αμέσως επόμενη εντολή). Βασικά, δοκίμασε πρώτα αυτό που πρότεινε ο linuxman.

Είναι λύση καλή , απλά με αυτά την έχω πατήσει όταν είχα όλα σε utf-8 , mysql , php4 , server , άλλα σελίδα έπρεπε να παίζει το iso8859-7 και είχα δώσει με αυτό που λες , είναι καλή λύση και εάν έχεις και php4 ειδικά και mysql βάση σε iso8859-7 , σε Ubuntu Server μίας και από την αρχή αν είναι 8.04 και πάνω έχει από την αρχή utf-8 όλα και στην mysql , locales , php , apache2 και το μόνο που πρέπει να έχουμε είναι σωστά τα php scripts με utf-8
@zenon βάλε το Geany από την Προσθαφαίρεση , είναι πολύ καλό editor .

Καλημέρα linuxman.
Σ' ευχαριστώ πολύ!

Μια ερώτηση, τί εννοείς από την Προσθαφαίρεση;
Και κάτι ακόμη. Αν βάλω και αυτό που μου είπε ο cyberpython και κάνω κι αυτά που μου είπες εσύ, θα υπάρξει κάποιο πρόβλημα; Εννοώ ο συνδιασμός και των δύο.

Σ' ευχαριστώ πολύ και πάλι!
zenon
babeTUX
babeTUX
 
Δημοσιεύσεις: 9
Εγγραφή: 01 Μάιος 2009, 23:41
Εκτύπωση

Re: Ελληνικοί χαρακτήρες σε MySQL και PHP

Δημοσίευσηαπό linuxman » 03 Μάιος 2009, 01:37

Από Προσθαφαίρεση έλεγα για το geany = editor , τώρα κάνε όχι και τα άλλα η το ένα η το άλλο , βασικά δοκίμασε για την αρχή να αλλάξεις το encoding στα php scripts file και μετά εάν δεν γίνει τότε υπάρχει και κάτι άλλο που ίσος μπορεί να λύσει το πρόβλημα .
Οδηγίες προς Νεοεισερχόμενους
1 Γνώσεις Linux: Πολύ καλό ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Linux Mint 17.1 Rebecca 3.13.0-37-generic 64bit (el_GR.UTF-8, X-Cinnamon cinnamon)
3 Intel Core i5-2310M CPU @ 2.10GHz ‖ RAM 3866 MiB ‖ Dell Inc. 0D7C51 - Dell Inc. Dell System Vostro 3750
4 Intel 2nd Generation Core Processor Family Integrated Graphics [8086:0116] {i915}
5 wlan0: Intel Centrino Wireless-N 1030 [Rainbow Peak] [8086:008a] (rev 34) ⋮ eth0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 06)
http://www.greeklug.gr
Άβαταρ μέλους
linuxman
Επίτιμο μέλος
Επίτιμο μέλος
 
Δημοσιεύσεις: 10378
Εγγραφή: 10 Μάιος 2008, 20:41
Τοποθεσία: Thessaloniki / Macedonia / Greece
Εκτύπωση

Επόμενο

Επιστροφή στο Διακομιστές / Εξυπηρετητές

cron