MySQL kai character set

George Notaras gnot at g-loaded.eu
Tue May 15 00:42:01 EEST 2007


On Mon, 2007-05-14 at 21:54 +0300, Nikos Kanellopoulos wrote:
> Μάλλον τα έκανα λίγο θάλασσα.
> 
> Ας τα πάρουμε από την αρχή. Όταν ξεκίνησα μια βάση mysql, δεν πείραξα
> το character set, οπότε χρησιμοποιήθηκε το default latin1. Τα δεδομένα
> που έβαζα ήταν iso-8859-7.  Δεν είμαι σίγουρος, αλλά φαίνεται πως το
> latin1 είναι 8-bit, οπότε δεν παρατήρησα κανένα πρόβλημα. Εκτός ίσως
> από το collation, που το ανακάλυψα πρόσφατα.
> 
> Τώρα όμως ήρθε η ώρα να κάνω καταχώρηση σε utf8. Χμμ. Κάνοντας ALTER
> TABLE, ο πίνακας δηλώνει πλέον UTF8 αλλά οι varchar κολώνες παραμένουν
> latin1. ¶ψογα. Αλλά και να πετύχαινε η μετατροπή, η mysql δεν γνωρίζει
> ότι περιέχει ελληνικά για να κάνει κάποια μετατροπή.
> 
> Δοκίμασα να τρέξω το recode πάνω στο output της mysqldump (που είναι
> UTF8). Τζίφος. Το άσχημο είναι ότι τελικά τα δεδομένα καταλήγουν σε
> HTML. Ανάλογα λοιπόν με το encoding της HTML, φαίνονται σωστά ή τα
> παλιά ή τα καινούρια (που είναι ακόμη λίγα).
> 
> Υπάρχει λύση που να μην είναι οδυνηρή;

Επειδή την είχα πατήσει άσχημα με δεδομένα στα ελληνικά, δοκίμασε να
παίξεις με το --default-character-set κατά το dumping γιατί το default
"παίζει" ανάλογα με την έκδοση:

Από mysql 5 manual:
If no character set is specified, mysqldump uses utf8, and earlier
versions use latin1. 

Το πιο σημαντικό: κράτα ένα backup της βάσης όπως ήταν πριν κάνεις
οποιαδήποτε αλλαγή, ακόμη κι αν το αποτέλεσμα των αλλαγών σου φανεί
απολύτως εντάξει. Ποτέ δεν ξέρεις αν τα έχεις ελέγξει όλα.





More information about the Linux-greek-users mailing list