【发布时间】:2019-09-30 05:09:05
【问题描述】:
我无法在 AWS Redshift 中加载特殊字符行。
出现错误:字符串包含无效或不受支持的 UTF8 代码点。错误的 UTF8 十六进制序列:c8 4d(错误 4)
导致问题的字符串是:Crème(è)。
对于临时修复,我正在使用:
copy dev.table (a,
b,
c,
d) from 's3://test-bucket/redshift_data_source/test_data.csv'
CREDENTIALS 'aws_access_key_id=xxxxxxxxxx;aws_secret_access_key=xxxxxxxxxxxx' CSV delimiter ',' IGNOREHEADER 1 COMPUPDATE OFF acceptinvchars;
acceptinvchars 接受它们作为 varchar 但把 ?在那些字符上。如何按原样阅读它们?
【问题讨论】:
-
你能在一些可以显示二进制值的编辑器中打开你的文件吗?或者在支持 UTF-8 的编辑器中打开文件并再次保存。可以在以下位置找到预期的 UTF-8 代码:unicode.scarfboy.com/?s=%C3%A8
-
在记事本++中显示为CRɍE。而在 Redshift 中,在加载时,它变成了 CR.ME,但由于 acceptinvchars,它变成了 CR?ME。
-
您需要弄清楚它实际存储的格式。这里有一些可能的方法:How can I view the binary contents of a file natively in Windows 7? (Is it possible.)
标签: mysql sql amazon-redshift