Restore MySQL DB with Unicode characters (Arabic a

2020-02-06 04:58发布

问题:

I have a MySQL backup file in .gz format that was created by the backup wizard in cPanel. When the restoration is done by the backup wizard, contents with Arabic and Kurdish characters do not show correctly, even though I changed the collation to different UTF-8 encoding in PhpMyadmin.

For example, the real data in DB is : كامپى زانكۆ and the data showed after the restoring become to this : بÙâزاÙÙÛÛâ

回答1:

This is a fairly common problem caused by inconsistent encoding schemes when creating and exporting the database. Here is the simplest way to solve it:

  1. Import your backup file
  2. Export it again, but using latin1 encoding
  3. Manually edit the exported file, change all occurrences of latin1 to utf8.
  4. Import the edited file.


回答2:

I added the lines

character-set-server=utf8
collation-server=utf8_general_ci

to the mysqld section of /etc/mysql/my.cnf on my new server, then exported the data using

mysqldump oldDB --default-character-set=latin1 -r dbCopy.sql

and imported it into the new DB using

mysql> SOURCE dbCopy.sql. Worked like a charm...