Mysql Talend与字符编码

Mysql Talend与字符编码,mysql,etl,talend,collate,Mysql,Etl,Talend,Collate,我正在使用talend将数据从旧数据库传输到新数据库。旧数据库是PostgreSQL,新数据库是MySQL 但我有问题,因为在旧数据库中有以下行: id lft rgt rank_id name_sci ------------------------------------------------------ 6530 6137 6138 88 Ocythoë tuberculata 6340 6127 6128

我正在使用talend将数据从旧数据库传输到新数据库。旧数据库是PostgreSQL,新数据库是MySQL

但我有问题,因为在旧数据库中有以下行:

id      lft     rgt     rank_id    name_sci
------------------------------------------------------
6530    6137    6138    88         Ocythoë tuberculata
6340    6127    6128    88         Ocythoe tuberculata
注意上面的两点
e

所以我有

tPsqlInput --> tFilterRow --> tMap --> tMysqlOutput
然而,我得到了一个错误:
重复输入“Oythoe tuberculata”,用于关键的“bio\u分类单元\u name\u sci\u unique”
如果我在插入MySQL之前放入
tLogRow
组件,我会得到正确的输出:
Ocythoeëtuberculata
Ocythoe tuberculata

我已尝试直接插入数据库:

into bio_taxons (name_sci, created_by, taxonomic_rank_id ) values ('Ocythoë', 1, 10);
它工作了,并且正确地插入了带有点的e,当我选择时,它表明它已经成功地插入到了行的上方

但从talend开始,出于某种原因,它用普通的
e
(不带点)取代了
e
e

我不知道如何解决这个问题。我尝试过编辑MySQL连接,但似乎没有任何效果:

以下是当前mysql连接字符串:

jdbc:mysql://:3306/fis?noDatetimeStringSync=true&characterEncoding=Cp1252
我尝试过使用值“utf8”、“utf-8”、“latin1”和“utf8mb4”,但都不起作用

同样在mysql中:

mysql> SELECT @@character_set_database, @@collation_database;
+--------------------------+----------------------+
| @@character_set_database | @@collation_database |
+--------------------------+----------------------+
| latin1                   | latin1_swedish_ci    |
+--------------------------+----------------------+

我建议全面使用utf8字符集和相应的排序规则,这样您可以适应每个字符(如果您还需要表情符号)

要将数据库转换为UTF8,请执行以下操作:

ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci
如果服务器编码尚未在utf8中,则可能还需要更改服务器编码。请检查以下内容:

SHOW VARIABLES WHERE variable_name LIKE 'char%'
然后指示JDBC驱动程序使用utf8编码。您的连接字符串变为:

jdbc:mysql://:3306/fis?noDatetimeStringSync=true&useUnicode=true&characterEncoding=utf-8

我只执行了
ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8\U unicode\U ci
,并更改了JDBC连接字符串,它工作正常,非常感谢您我很高兴我能提供帮助;)嘿,问题中的问题已解决,但还有一个问题,它将字母
č
更改为
,但tLogRow组件在输出中显示了正确的字符串…非常抱歉,我错过了您的评论;你能解决你的问题吗?是的,这是我的连接字符串的问题,不知何故我把它改成了默认的xD