Φωτογραφία 'Αγγελος Μπάκας
Ασυμφωνία χαρακτήρων..!
από 'Αγγελος Μπάκας - Monday, 29 June 2009, 8:52 AM
 
Αντιμετωπίζω το εξής πρόβλημα,
Δεν εμφανίζονται σωστά οι ελληνικοί χαρακτήρες, όταν κάνω αναζήτηση από το phpMyAdmin. Απο την κονσόλα της MySQL και στον browser είναι όλα ΟΚ.

Διόρθωσα από το phpMyAdmin τις εγγραφές με τους ελληνικούς χαρακτήρες αλλά τότε δεν είναι δυνατή η αναζήτηση τους από τη σελίδα. Στην κονσόλα  όμως εμφανίζονται

Έχω φτιάξει τη βάση και τον  πίνακα με το phpMyAdmin  (MySQL connection collation utf_unicode_ci)  ο πίνακας έχει  την παρακάτω δομή:

CREATE TABLE IF NOT EXISTS `contacts` (
  `id` smallint(5) unsigned NOT NULL auto_increment,
  `FirstName` varchar(35) collate utf8_unicode_ci NOT NULL,
  `LastName` varchar(35) collate utf8_unicode_ci NOT NULL,
  `Phone` varchar(30) collate utf8_unicode_ci NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=0 ;

Ξαναπερνάω τις εγγραφές από τη σελίδα κάθε φορά γιατί ηέξοδος του phpMyAdmin είναι
σε μη κατανοητή μορφή

-
-- Dumping data for table `contacts`
--

INSERT INTO `contacts` (`id`, `FirstName`, `LastName`, `Phone`) VALUES
(1, 'ΑÏίσταÏχος', 'Σάμιος', '11850'),
(2, 'ΑÏιστοτέλης', 'Φιλόσοφος', '11850'),
(3, 'ΑÏχιμήδης', 'ΑÏχαίος', '11850');

χρησιμοποιώ firefox σε linux αλλά κάνω δοκιμές και σε winxp με IE8 με την ίδια βάση την οποία κανω EXPORT/IMPORT από το ένα σύστημα στο άλλο με τα ίδια αποτελέσματα.

υποψιάζεται κανείς τί μπορεί να είναι?
 
Φωτογραφία Στέλιος Μερσινάς
Απάντηση: Ασυμφωνία χαρακτήρων..!
από Στέλιος Μερσινάς - Monday, 29 June 2009, 11:14 AM
 
Άγγελε, το encoding στην σελίδα στον web browser τι είναι?
Μπορείς να δοκιμάσεις με UTF ή ακόμα και με ελληνικα? (ISO & Win).
Φωτογραφία 'Αγγελος Μπάκας
Τελικά συμφώνησαν σε utf8 αργά το βράδυ!
από 'Αγγελος Μπάκας - Monday, 29 June 2009, 11:26 PM
 
Το encoding ήταν utf-8 και στο browser,
Δεν υπήρχε πρόβλημα στο browser μόνο στο phpmyadmin εμφανιζόταν με αποτέλεσμα να μη μπορώ να κάνω export τη βάση. Όλα τα άλλα ήταν OK.
Μπορεί να μου πήρε όλο το απόγευμα μέχρι τώρα, να απεγκατέστησα το wamp κανα δυό φορές, κατέβασα την τελευταία έκδοση του phpmyadmin,  αλλά το βρήκα.!

Η λύση ήρθε από τη σελίδα http://dev.mysql.com/doc/refman/5.1/en/charset.html
Ανακάλυψα δυό εντολές, τις πληκτρολογησα στην κονσόλα της MySQL:
1) show variables like 'collation%';
2) show variables like 'character_set%';

Η πρώτη μου εμφάνισε όλα τα collation σαν latin1_swedish_ci
Η δεύτερη μου εμφάνισε όλα τα character-set σαν latin1

Ψάχνοντας βρήκα ότι πρέπει να προσθέσω τρείς εγγραφές στο αρχείο ρυθμίσεων της MySQL
Στο WAMP είναι το my.ini και αλλάζει ΜΟΝΟ από το εικονίδιο στο taskbar, με αριστερό κλικ στο εικονίδιο --> Config files --> my.ini  μέσα στο αρχείο  υπάρχει το πεδίο [wampmysqld] από την αρχή προς τη μέση του αρχείου, στο linux το πεδίο είναι το [mysqld] και το αρχείο της MySQL  /etc/mysql/my.cnf

Κάτω από το:
# The default character set that will be used when a new schema  or table is
# created and no character set is defined
Αυτά που λέει τουλάχιστον στη δική μου την περίπτωση δεν ίσχυσαν, μια χαρά το είχα ορίσει.. και μια χαρά το ξαναδοκίμασα και σε άλλη βάση αλλά δεν.. έτσι  έσβησα το  character_set_server=latin1
και πρόσθεσα τις επόμενες τρείς εγγραφές :

collation_server=utf8_unicode_ci
character_set_server=utf8
skip-character-set-client-handshake

Αποθηκεύσα το αρχείο, --> restart all services στο wamp, --> export,drop,insert τη βάση και είμαστε έτοιμοι.. με utf8 παντού.