AWS Datapipeline - 带重音字符的问题

时间:2017-01-12 21:19:02

标签: mysql amazon-web-services amazon-rds amazon-data-pipeline

我是AWS datapipeline的新手。我创建了一个成功的数据管道,将所有内容从RDS拉到S3存储桶。一切正常。我在S3存储桶中看到了我的.csv文件。但是我把西班牙名字存放在我的桌子里,在csv我看到“Garc�a”而不是“García”

3 个答案:

答案 0 :(得分:2)

看起来使用了错误的代码页。只需参考正确的代码页,你应该没问题。以下主题可能会有所帮助:Text files uploaded to S3 are encoded strangely?

答案 1 :(得分:1)

AWS DataPipeline在Java中实现,并使用JDBC(Java数据库连接)驱动程序(具体而言,在您的情况下为MySQL MySQL Connector/J)连接到数据库。根据文档的Using Character Sets and Unicode部分,连接器使用的字符集是根据RDS / MySQL服务器上的character_set_server系统变量自动确定的,该变量设置为latin1默认值。

如果您的应用程序的此设置不正确(在MySQL客户端中运行SHOW VARIABLES LIKE 'character%';进行确认),您有两种方法可以解决此问题:

  1. 在您的RDS / MySQL服务器上将character_set_server设置为utf8。要从RDS控制台永久更改此更改,请参阅Modifying Parameters in a DB Parameter Group以获取相关说明。
  2. 在DataPipeline配置中传递其他JDBC属性以覆盖JDBC连接使用的字符集。对于此方法,请将以下JDBC属性添加到RdsDatabaseJdbcDatabase对象(请参阅properties reference):

    "jdbcProperties": "useUnicode=true,characterEncoding=UTF-8"

答案 2 :(得分:0)

这个问题与Text files uploaded to S3 are encoded strangely?有点类似。如果是这样,请在那里引用我的答案。