首页 > 解决方案 > 字符被替换为 ? 使用复制命令时的符号

问题描述

我正在尝试使用复制命令将 csv 文件加载到 redshift 表。

varchar 列中的特殊符号(如磅 £)被转换为问号“?” (这是红移的默认设置)。如何也复制特殊符号?

下面是我的 aws 复制命令

COPY public.sales FROM 's3://mybucket/salesfile.csv' iam_role 'arn:aws:iam::99999999999:role/RedShiftRole' delimiter ',' ignoreheader 1 acceptinvchars

标签: amazon-web-servicesamazon-s3aws-lambdaamazon-redshift

解决方案


您的数据是从 SQL Server 提取的吗?如果是这样,它很可能在 UTF-16LE 中,您需要将其作为参数添加到COPY.

COPY public.sales 
FROM 's3://mybucket/salesfile.csv' 

ENCODING UTF16LE

IAM_ROLE 'arn:aws:iam::99999999999:role/RedShiftRole' 
DELIMITER ',' 
IGNOREHEADER 1 
ACCEPTINVCHARS

https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-data-conversion.html#copy-encoding


推荐阅读