Οδηγίες για σωστά Ελληνικά utf8 στην mysql

Όταν παίρνετε backup να χρησιμοποιείτε την εντολή:

mysqldump –default-character-set=utf8 –databases databasename > “dumpfile.sql”

Για να μην έχετε ποτέ πρόβλημα πρέπει να δουλεύετε πάντα με κωδικοποίηση utf8 παντού.
Οι βάσεις που δημιουργείτε πρέπει να έχουν collation utf8.

Greek-UTF-8- Mysql

Όταν συνδέεστε στη βάση πάντα:

mysql –character-sets-dir=/usr/share/mysql/charsets –default-character-set=utf8 databasename

Ένας τρόπος να δείτε την κατάσταση της σύνδεσης σας με τη βάση είναι στην κονσόλα αφού έχετε συνδεθεί να πληκτρολογήσετε:

\s

Για να είστε σίγουροι ότι όλα θα δουλέψουν σωστά θα πρέπει να είναι παντού utf-8 .  Στην πιο πάνω εικόνα βλέπουμε ότι δεν είναι όλα utf8.

Πολλές φορές πρέπει να βεβαιωθείτε ότι και o ssh clienτ(π.χ putty) που χρησιμοποιείτε συνδέεται με utf8 κωδικοποίηση.

Στον PuTTY το βλέπετε και το αλλάζετε στο window->translation και βάλτε utf8.

PuTTY-utf8-translations

PuTTY-utf8-translations

Αν χρησιμοποιείτε php μετά την σύνδεση με τη βάση εκτελέστε το:

mysql_query(“set names utf8”);

Posted in HowTo and tagged , , .

3 Comments

  1. Κι όμως, 3 χρόνια μετά, ψάχνοντας από δω και από κει για κάποια λύση με τα ελληνικά στη βάση μου …..η λύση βρέθηκε στη γραμμούλα –> mysql_query(“set names utf8″); <– μετά τη σύνδεση με τη βάση!

    Εύγε, γιατί πολύς κώδικας για το τίποτα σε όσα sites προσπάθησα να βρω μία “λογική” άκρη.

    Ευχαριστώ! 

  2. Σας παρακαλώ πολύ έχω φάει όλα τα forums και όλα λένε να βάλουμε την εντολή
    mysql_query(“set names utf8″);
    μετά το connection στην d.base αλλά πουθενά δεν έχω βρεί να λένε σε ποιό αρχείο php θα πρέπει να βάλουμε την εντολή αυτή. Σε ποιό ακριβώς αρχείο θα την προσθέσουμε ?
    Σας ευχαριστώ εκ των προτέρων για την βοήθεια σας.
    Μανώλης

  3. Καλησπέρα ,
    Αντιμετώπιζα το ίδιο πρόβλημα με μία web εφαρμογή που φτιάχνω.
    Ψάχνοντας βρήκα στο stackoverflow το εξής:

    Στο αρχείο my.cnf η my.ini σε Windows..

    [mysqld]
    collation-server = utf8_unicode_ci
    init-connect=’SET NAMES utf8′
    character-set-server = utf8
    skip-character-set-client-handshake

    [client]
    default-character-set = utf8

    [mysql]
    default-character-set = utf8

    Δούλεψε τέλεια!

Αφήστε μια απάντηση

Η ηλ. διεύθυνση σας δεν δημοσιεύεται. Τα υποχρεωτικά πεδία σημειώνονται με *

Αυτός ο ιστότοπος χρησιμοποιεί το Akismet για να μειώσει τα ανεπιθύμητα σχόλια. Μάθετε πώς υφίστανται επεξεργασία τα δεδομένα των σχολίων σας.