Best Greek collation

Συζητήσεις για την βάση δεδομένων MySQL και το phpMyAdmin

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Best Greek collation

Δημοσίευση από oikonomou » 25 Μαρ 2007 01:17

Παιδια θελω να ρωτησω ποιο collation στην MySQL είναι το καλύτερο για ελληνικά σε συνδυασμό με αγγλικά;

Βασικά δουλεύω σε ένα CMS και έχω προβλήματα με την κωδικοποίηση. Oι σελίδες είναι σε iso-8859-7. Το CMS έχει ένα έντιτορ για τα νέα ο οποίος δέχετε τα δεδομένα σε UTF-8. Έπειτα τα αποθηκεύει στην βάση με την κωδικοποίηση που έχω διαλέξει για αυτήν.

Είχα την default στην βάση και αποφάσισα να αλλάξω στα ελληνικά. Έτσι έβαλα την greek_general_ci. Μου βγαίναν όλο ερωτηματικά. Την άλλαξα σε UTF8_unicode_ci και όπως το περίμενα δούλεψε. To προβλημα πλεον ειναι οταν χρησιμοποιω AJAX για εισαγωγή ή τροποποιηση. Συγκεκριμενα εχω προβλημα μονο με τα ελληνικα τα οποια βγαζει παλι αλα νταλον.

Ξερω οτι ειναι λιγο ακαταλαβιστικα αυτα που λεω αλλα ειναι η περιγραφη του προβληματος μου. Αν καποιος μπορει να μου πει1-2 καλους τροπους να δουλευω με ελληνικα και UTF8;
Έλεος με γκρίκλις πλέον. Γράψτε ελληνικά

Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Best Greek collation

Δημοσίευση από oikonomou » 25 Μαρ 2007 01:30

iso-8859-1
Εμφανίζει ελληνικά; Είναι σωστή κωδικοποίηση;

Ποιες αλλες υπαρχουν; Με iso-8859-7 τα σκριπτ δεν μπορουν να διαβασουν απο την σελιδα μου. Το ειδα και στο μανυαλ της PHP..

http://de.php.net/manual/en/function.ht ... decode.php
Έλεος με γκρίκλις πλέον. Γράψτε ελληνικά

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Best Greek collation

Δημοσίευση από cherouvim » 25 Μαρ 2007 08:12

Η iso-8859-1 δεν εμφανίζει Ελληνικά. Προτείνω UTF-8 με το default collation που υπάρχει για αυτό το encoding.

Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Best Greek collation

Δημοσίευση από oikonomou » 25 Μαρ 2007 11:07

Εννοεις UTF-8 στην σελίδα μου και να αφησω το default collation στην βαση μου δηλαδη; Αν καταλαβα καλα..
Έλεος με γκρίκλις πλέον. Γράψτε ελληνικά

Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Best Greek collation

Δημοσίευση από oikonomou » 25 Μαρ 2007 11:41

Λοιπον για να ειμαι πιο ακριβης..

το σκριπτ του CMS διαβαζει την φορμα ως εξης:

Κώδικας: Επιλογή όλων

function convert_unicode($t, $to = 'utf-8')
{
		$to = strtolower($to);

		if ($to == 'utf-8') {

			$t = preg_replace( '#%u([0-9A-F]{1,4})#ie', "decode_to_utf8(hexdec('\\1'))", utf8_encode($t) );
			$t = urldecode ($t);

		} else {

			$t = preg_replace( '#%u([0-9A-F]{1,4})#ie', "'&#' . hexdec('\\1') . ';'", $t );
			$t = urldecode ($t);
    		$t = html_entity_decode($t, ENT_NOQUOTES, $to);

		}

		return $t;
}

Αυτη html_entity_decode δεν μπορει να διαβασει 8859-7 οπως εχω δωσει και στο λινκ.
Οποτε λεω να αλλαξω το σκριπτακι και να φησω μονο το 1ο σκελος. Το εκανα αλλα δουλευει μονο με αγγλικα. Δηλαδη τα αγγλικα τα γραφει κανονικα στην βαση και για τα ελληνικα μου βγαζει ιερογλυφικα.

Μια λυση που σκεφτηκα ειναι να κανω την σελιδα 'utf-8', την βαση utf-8_general_ci και να αφησω το σκριπτ οπως ειναι η να το βγαλω τελειως ωστε να τα βαζει οπως ειναι μεσα.

Τι λετε; Θα προτιμουσα παντως 8859-7 στην σελιδα. Εξαλλου εαν αποθηκευω τα δεδομενα σε utf-8 δεν τρωω περισσοτερο χωρο στην βαση; και δεν θα αργουν πιο πολυ να φορτωσουν οι σελιδες μου; Το λεω γιατι αλλο να παιρνεις τον χαρακτηρα γ και αλλο το $&452; Ειναι 5 χαρακτηρες παραπανω..5πλασιαζω την βαση δηλαδη..

τι λετε;
Έλεος με γκρίκλις πλέον. Γράψτε ελληνικά

Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Best Greek collation

Δημοσίευση από oikonomou » 25 Μαρ 2007 12:03

H windows-1253;
Έλεος με γκρίκλις πλέον. Γράψτε ελληνικά

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Best Greek collation

Δημοσίευση από cherouvim » 25 Μαρ 2007 12:26

Το α και $&452; που λες δεν είναι UTF-8. Αυτοί ήταν οι native χαρακτήρες (α, β, γ...) που μετατράπηκαν σε html entities. Ένα html entity μπορεί να σωθεί σε οποιοδήποτε encoding γιατί χρησιμοποιεί το πολύ βασικό ascii set. Πρώτα πρέπει να λύσεις αυτό το πρόβλημα, και μετά να αποφασίσεις αν θα χρησημοποιήσεις iso-8859-7, windows ή UTF-8. Προφανώς είναι κάποια ρύθμιση στον RTE του CMS σου.

Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Best Greek collation

Δημοσίευση από oikonomou » 25 Μαρ 2007 12:41

Το CMS δεν εχει RTE..ενα απλο textarea και χρησιμοποιει AJAX για να βαζει καποιες ετικετες.

Για αυτο πιστευω οτι μπορω να παρω τα δεδομενα απο εκει χωρις να χρησιμοποιησω πουθενα τον κωδικα που εγραψα πιο πανω..ενα απλο ποστ;
και να μπουνε στην βαση σαν ελληνικα με το καταλληλο collation σε αυτην..τι λες;
Έλεος με γκρίκλις πλέον. Γράψτε ελληνικά

Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Best Greek collation

Δημοσίευση από oikonomou » 25 Μαρ 2007 12:51

Το α και $&452; που λες δεν είναι UTF-8..

Για αυτο που λες εχω αδικο; Στην βαση μου τα ελληνικα αποθηκευονται ετσι. Βαζω 5 χαρακτηρες παραπανω..σε αυτο εχω λαθος;
Έλεος με γκρίκλις πλέον. Γράψτε ελληνικά

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Best Greek collation

Δημοσίευση από cherouvim » 25 Μαρ 2007 12:57

Πέρα από το οτι βάζεις 5 chars παραπάνω, δεν μπορείς να κάνεις search, και να επεξεργαστείς σωστά τα δεδομένα από κάποιο db client εργαλείο.

Πριν σκεφτείς οτιδήποτε για το encoding της βάσης, πρέπει να λύσεις το πρόβλημα αυτό. Το CMS σου δηλαδή, στο submit των forms να μην μετατρέπει τα native chars σε html entities.

Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Best Greek collation

Δημοσίευση από oikonomou » 25 Μαρ 2007 13:06

Ωραια και εγω αυτο σκεφτομουν τωρα..

θα δοκιμασω αυτο που ειπα πιο πανω..να μην τα μετατρεπω σε τιποτα. Οι σελιδες θα ειναι σε 8859-7 και απο την φορμα θα γινετε ενα απλο ποστ στην βαση. Ασε την html entities. Αυτο θα δουλεψει μαλλον. Μου ακουγεται λογικο εσενα; Το προβλημα θα ειναι να μπει ο χαρακτηρας ο ελληνικος στην βαση σωστα.
Έλεος με γκρίκλις πλέον. Γράψτε ελληνικά

Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Best Greek collation

Δημοσίευση από oikonomou » 25 Μαρ 2007 13:10

Α και τελικα δεν πηρα απαντηση στο κεντρικο ερωτημα. Ποιο ειναι το καλυτερο collation για να βαλω στην MySQL γενικα; Kαι επισης ποιο θα ηταν καλυτερο για την δικη μου περιπτωση συγκεκριμενα..
Έλεος με γκρίκλις πλέον. Γράψτε ελληνικά

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Best Greek collation

Δημοσίευση από cherouvim » 25 Μαρ 2007 13:14

Δεν υπάρχει καλύτερο encoding και collation. Είναι ανάλογα τις ανάγκες. Εγώ χρησιμοποιώ UTF-8 και το default collation του UTF-8 στην MySQL.

Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Best Greek collation

Δημοσίευση από oikonomou » 25 Μαρ 2007 13:22

Τωρα δεν μου ειπες "Πέρα από το οτι βάζεις 5 chars παραπάνω, δεν μπορείς να κάνεις search, και να επεξεργαστείς σωστά τα δεδομένα από κάποιο db client εργαλείο. "

με μπερδεψες :)
Έλεος με γκρίκλις πλέον. Γράψτε ελληνικά

Άβαταρ μέλους
oikonomou
Δημοσιεύσεις: 362
Εγγραφή: 23 Φεβ 2006 10:56

Best Greek collation

Δημοσίευση από oikonomou » 25 Μαρ 2007 13:49

Το frestuff τι collation χρησιμοποιει αν ξερει κανεις..
Έλεος με γκρίκλις πλέον. Γράψτε ελληνικά

Απάντηση

Επιστροφή στο “MySQL”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες