如何告诉AWS胶水我的json是utf-8?

时间:2018-02-07 15:51:36

标签: aws-glue

我正在尝试使用AWS Glue Crawler为json文件创建表。我的JSon文件是带有BOM的utf-8。似乎AWS Glue无法将文件识别为json(或实际上任何东西),因此它会创建一个空表定义。纯文本文件确实有效(但当然它们不能正确包含国际字符)。 有没有办法告诉Glue文件是utf-8?我已经尝试将S3元数据“Content-Type”设置为“application / json; charset = utf-8”,但这没有帮助。

1 个答案:

答案 0 :(得分:3)

事实证明,AWS Glue json文件不能有BOM。正如三人在评论中所说的那样,默认情况下它们是utf-8。 RFC 8259确实说:

  

8.1。字符编码
  在不属于封闭生态系统的系统之间交换的JSON文本必须使用UTF-8进行编码

并补充说:

  

实现绝不能添加字节顺序标记(U + FEFF)      网络传输的JSON文本的开头。为了利益      互操作性,解析JSON文本的实现可能会忽略      存在字节顺序标记而不是将其视为一个      错误。

对于AWS Glue来说,做最后一点会很好,但他们不需要这样做。