bikey77 Δημοσ. 22 Νοεμβρίου 2010 Δημοσ. 22 Νοεμβρίου 2010 Υπάρχει τρόπος να μετατρέψω τα δεδομένα (όχι τους πίνακες και τα πεδία αλλά τα δεδομένα μέσα σε αυτά) από utf8_bin σε utf8_general_ci και αν ναι, ποιος?
_tasos Δημοσ. 22 Νοεμβρίου 2010 Δημοσ. 22 Νοεμβρίου 2010 Να υποθέσω ότι ρωτάς για MySQL, σωστά; Αν ναι, δες λίγο εδώ: http://dev.mysql.com/doc/refman/5.0/en/charset-convert.html.
chrismfz Δημοσ. 22 Νοεμβρίου 2010 Δημοσ. 22 Νοεμβρίου 2010 Υπάρχει τρόπος να μετατρέψω τα δεδομένα (όχι τους πίνακες και τα πεδία αλλά τα δεδομένα μέσα σε αυτά) από utf8_bin σε utf8_general_ci και αν ναι, ποιος? Export το dump, (mysqldump πχ) εφ'οσον μιλάμε για SQL αν όχι το παραλείπουμε αυτό, iconv με παραμέτρους τι ήταν και τι θέλουμε να γίνει* import ξανα μέσα. Αν μιλάμε για SQL πρέπει στο dump να αλλάξουμε και τα attributes όταν χτίζει τους πίνακες απο bin σε general... (edit το αρχείο κοινώς) *iconv παραδειγμα: iconv -f CP1251 -t UTF-8 basi.sql > basi.utf8.sql Μπερδέυτικα αλλά αφήνω και το απο πάνω αν χρειαστεί σε κανενα search αν θέλει κάποιος να κάνει convert απο άλλο character set σε UTF. Αυτό που λογικά θες, η λογική λέει, είναι >mysql --database=dbname -B -N -e "SHOW TABLES" \ | awk '{print "ALTER TABLE", $1, "CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;"}' \ | mysql --database=dbname & σε ολα-σε-ενα εντολη ή με php ><?php // your connection mysql_connect("localhost","root","***"); mysql_select_db("db1"); // convert code $res = mysql_query("SHOW TABLES"); while ($row = mysql_fetch_array($res)) { foreach ($row as $key => $table) { mysql_query("ALTER TABLE " . $table . " CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci"); echo $key . " => " . $table . " CONVERTED<br />"; } } ?>
chrismfz Δημοσ. 23 Νοεμβρίου 2010 Δημοσ. 23 Νοεμβρίου 2010 Όσο μπορώ... backup πριν δοκιμάσεις οποιοδήποτε τρόπο δεν θέλω να με κυνηγάς βραδιάτικα...
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.