2010-01-27 7 views

उत्तर

12
mysqldump --user=username --password=password --default-character-set=latin1 --skip-set-charset dbname > dump.sql 
sed -r 's/latin1/utf8/g' dump.sql > dump_utf.sql 
mysql --user=username --password=password --execute="DROP DATABASE dbname; CREATE DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;" 
mysql --user=username --password=password --default-character-set=utf8 dbname < dump_utf.sql 
+9

चला सकते हैं और उम्मीद है कि अपने डेटाबेस सामग्री के किसी भी अंदर शामिल नहीं है "latin1" क्वेरी के बहुत सारे, निर्माण होगा ... बाकी अपने उपयोगकर्ताओं को एक के लिए आधार हो सकता है मुकदमा यदि आपकी पोस्ट रूपांतरण वेबसाइट अचानक ग़लत डेटाबेस आदेशों की पेशकश कर रही है! –

+0

sed के बाद: uconv --from-code latin1 --to-code utf8 dump_utf.sql> dump_utf_fixed.sql – scribe

+0

SED क्या है ????? – marcolopes

37

एकल तालिका आप कुछ इस तरह कर सकते हैं के लिए:

ALTER तालिका टैब वर्ण सेट UTF8 मुक़ाबला utf8_unicode_ci में कन्वर्ट;

पूरे डेटाबेस के लिए मैं इस के समान अलावा किसी अन्य विधि नहीं जानता:

http://www.commandlinefu.com/commands/view/1575/convert-all-mysql-tables-and-fields-to-utf8

+18

कमांड लाइन एक्सेस के बिना, आप अपने डेटाबेस में 'टैब दिखाएं' चला सकते हैं, उन्हें http://imimbletext.com/live पर NimbleText में पेस्ट करें और फिर परिवर्तन स्क्रिप्ट उत्पन्न करने के लिए इस पैटर्न का उपयोग करें: 'वैकल्पिक तालिका \ '$ 0 \' कनवर्टर सेट करने के लिए कनवर्ट करें utf8 COLLATE utf8_unicode_ci; ' – jocull

+0

मुझे लगता है कि निंबलेटेक्स्ट के बारे में टिप कुछ जान बचाती है। वोट ऊपर! – James

-1

अपने डेटाबेस नाम

चयन concat साथ my_database_name की जगह ('टेबल बदल', TABLE_NAME, ' कैरेक्टर से कनवर्टर सेट utf8 COLLATE utf8_unicode_ci; ') info_schema.TABLES जहां TABLE_SCHEMA =' my_database_name ';

इस तरह के वर्ण एन्कोडिंग के बारे में ब्लॉग पोस्ट के रूप में जो आप

संबंधित मुद्दे