S3 - > Redshift无法处理UTF8

Ell*_*nce 9 amazon-s3 paraccel amazon-redshift

我们在S3中有一个文件,通过COPY命令加载到Redshift中.导入失败,因为VARCHAR(20)值包含在复制命令期间Ä被翻译的值..,现在对于20个字符来说太长了.

我已验证S3中的数据是否正确,但COPY在导入期间无法理解UTF-8字符.有人找到了解决方案吗?

Adr*_*rie 15

TL;博士

varchar列的字节长度只需要更大.

详情

varchar数据类型支持多字节字符(UTF-8),但提供的长度以字节单位,而不是字符.

多字节字符加载错误的AWS文档声明如下:

VARCHAR 列接受多字节UTF-8字符,最多四个字节.

因此,如果您希望Ä允许该字符,则需要为该字符允许2个字节,而不是1个字节.

VARCHAR或CHARACTER VARYING的AWS文档声明如下:

...所以一VARCHAR(120)列最多包含120个单字节字符,60个双字节字符,40个三字节字符或30个四字节字符.

对于UTF-8字符及其字节长度的列表,这是一个很好的参考: UTF-8的完整字符列表

可在此处找到Unicode字符"带有DIAERESIS的拉丁文大写字母A"(U + 00C4)的详细信息.