解决Snowflake导出至AWS S3时特殊字符显示异常问题
解决Snowflake导出CSV到AWS S3的特殊字符乱码问题
问题根源
你遇到的乱码(「Raleigh, NC - E&S PED」变成「Raleigh, NC – E&S PED」),是因为UTF-8编码的特殊字符(此处为长破折号U+2013)被错误地用ISO-8859-1/Windows-1252编码解析导致的。核心原因是导出时未明确指定文件字符集,导致后续读取环节使用了不正确的编码规则。
修复方案
在COPY INTO命令的FILE_FORMAT配置中,显式添加ENCODING = 'UTF8'参数,强制指定导出文件的编码为UTF-8。
修改后的完整命令
copy into @aws_s3_to_snf/SNF_S3_WB_STL.csv from AAW.ACS_CLS_MART.SNF_S3_WB_STL max_file_size = 2000000 overwrite = true single = true detailed_output = true header = true FILE_FORMAT = ( type = csv field_delimiter = ',' skip_header = 1 compression=NONE FIELD_OPTIONALLY_ENCLOSED_BY = '"' ENCODING = 'UTF8' );
额外注意事项
- Snowflake默认导出编码为UTF-8,但显式声明能避免客户端、S3存储或读取工具的默认编码干扰,确保一致性。
- 读取导出的CSV文件时,需确保编辑器或数据工具(如Excel)使用UTF-8编码打开/导入,否则仍可能出现乱码(Excel默认会用系统编码,需手动选择UTF-8)。
内容的提问来源于stack exchange,提问作者Shaik Bakshu
相关产品推荐
相关产品推荐

