You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用S3 SelectObjectContent报InvalidTextEncoding错,如何添加latin-1编码参数

修复方案

编码参数需要添加到InputSerialization配置项的CSV子字典中,注意boto3接口的参数首字母需要大写为Encoding,修改后的代码如下:

import boto3

# 注意原代码中boto3客户端初始化的参数写法有误,已修正为键值对格式
client = boto3.client(
    's3',
    aws_access_key_id=aws_access_key_id,
    aws_secret_access_key=aws_secret_access_key,
    region_name=region_name
)
resp = client.select_object_content(
    Bucket='mybucket',
    Key='path_to_file/file_name.gz',
    ExpressionType='SQL',
    Expression=query,
    InputSerialization = {
        'CSV': {
            "FileHeaderInfo": "Use",
            "Encoding": "latin-1" # 新增编码配置行
        },
        'CompressionType': compressionType
    },
    OutputSerialization = {'CSV': {}},
)

注意事项

  • 若后续处理输出结果时仍出现编码异常,可在OutputSerialization的CSV配置中同样添加"Encoding": "latin-1"参数
  • latin-1编码是单字节编码,兼容所有字节序列,可避免无效应答报错,若你明确知道文件的实际编码,也可以替换为对应编码值(比如GBK、GB2312等)

内容的提问来源于stack exchange,提问作者Beginner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 15:27:00