International characters not handled correctly
richard9999
Posts: 2
I have a table that contains characters in Arabic, Chinese, etc., and I'm trying to sync its data with the same table on another server. I have verified that the database schemas, tables and columns on both sides of the comparison are using UTF8 for the character encoding. The destination table is empty to begin with, so all rows will be inserted from the source table.
When I run MySQL Data Compare and view the results for this table, I see that the non-Roman alphabets are all displayed as a series of question marks. When I create a deployment script again I see question marks in MySQL Data Compare, like this:
Although this preview of the script didn't look right I continued with "Deploy using MySQL Data Compare". Sure enough, when viewing the results in Workbench I see question marks in my destination table, where the source table has international characters as intended.
When MySQL Data Compare refreshes the comparison after deployment, it claims that the source and destination table contents are identical, even though the source contains the correct characters while the destination contains question marks. In the comparison display, MySQL Data Compare shows question marks for all these characters in both source and destination.
I have looked for a way to change the character encoding used by MySQL Data Compare's database connections, but I see nothing. I have tried all international character encodings listed under Tools > Application Options > Synchronization scripts > Encoding, but this setting seems to make no difference. (The options shown are UTF-8, UTF-8 with preamble, Unicode (UTF-16) and ASCII, and I tried all except ASCII.)
I'm using MySQL Data Compare 1.0.0.473 on Windows 8.1. The databases are MySQL 5.5 running on Ubuntu.
When I run MySQL Data Compare and view the results for this table, I see that the non-Roman alphabets are all displayed as a series of question marks. When I create a deployment script again I see question marks in MySQL Data Compare, like this:
INSERT INTO `myDatabase`.`list_culture` VALUES (1, '', 'Invariant Language (Invariant Country)', 'Invariant Language (Invariant Country)', False, '2015-03-30 12:03:09', NULL, True); INSERT INTO `myDatabase`.`list_culture` VALUES (2, 'af', 'Afrikaans', 'Afrikaans', True, '2015-03-30 12:03:09', NULL, True); INSERT INTO `myDatabase`.`list_culture` VALUES (3, 'af-ZA', 'Afrikaans (Suid-Afrika)', 'Afrikaans (South Africa)', False, '2015-03-30 12:03:09', NULL, True); INSERT INTO `myDatabase`.`list_culture` VALUES (4, 'am', '????', 'Amharic', True, '2015-03-30 12:03:09', NULL, True); INSERT INTO `myDatabase`.`list_culture` VALUES (5, 'am-ET', '???? (?????)', 'Amharic (Ethiopia)', False, '2015-03-30 12:03:09', NULL, True); INSERT INTO `myDatabase`.`list_culture` VALUES (6, 'ar', '???????', 'Arabic', True, '2015-03-30 12:03:09', NULL, True); INSERT INTO `myDatabase`.`list_culture` VALUES (7, 'ar-AE', '??????? (???????? ??????? ???????)', 'Arabic (U.A.E.)', False, '2015-03-30 12:03:09', NULL, True); INSERT INTO `myDatabase`.`list_culture` VALUES (8, 'ar-BH', '??????? (???????)', 'Arabic (Bahrain)', False, '2015-03-30 12:03:09', NULL, True); INSERT INTO `myDatabase`.`list_culture` VALUES (9, 'ar-DZ', '??????? (???????)', 'Arabic (Algeria)', False, '2015-03-30 12:03:09', NULL, True); etc.
Although this preview of the script didn't look right I continued with "Deploy using MySQL Data Compare". Sure enough, when viewing the results in Workbench I see question marks in my destination table, where the source table has international characters as intended.
When MySQL Data Compare refreshes the comparison after deployment, it claims that the source and destination table contents are identical, even though the source contains the correct characters while the destination contains question marks. In the comparison display, MySQL Data Compare shows question marks for all these characters in both source and destination.
I have looked for a way to change the character encoding used by MySQL Data Compare's database connections, but I see nothing. I have tried all international character encodings listed under Tools > Application Options > Synchronization scripts > Encoding, but this setting seems to make no difference. (The options shown are UTF-8, UTF-8 with preamble, Unicode (UTF-16) and ASCII, and I tried all except ASCII.)
I'm using MySQL Data Compare 1.0.0.473 on Windows 8.1. The databases are MySQL 5.5 running on Ubuntu.
Comments