

以下の順序でテキストファイルの整形をしています。

  1. Lambda（node.js）からS3のテキストファイル（.deletes）を取得
  2. Lambdaでテキストの中身を整形
  3. 拡張子を.textに変更し、S3にput

3.でS3にputする際に 以下をputパラメータに持たせており、  
putしたファイルをS3コンソール上で確認すると、メタデータにそれぞれが設定されていることが確認できました。

[code]

    contentType = "text/plain";
    contentEncoding = "UTF-8";
    
[/code]

しかし、このファイルをダウンロードしてサクラエディタで確認すると、UTF-8ではなくSJISと表示されました。

どうすればUTF-8のファイルにすることができるのでしょうか。  
宜しくお願い致します。


CC BY-SA 4.0
2018-08-02T02:26:16.893
47171
2020-04-17T14:01:00.167
2018-08-23T09:19:53.380
29826
26829
question
aws amazon-s3 aws-lambda
S3のオブジェクトとエンコード


`iconv-lite` を使って文字コードを変換してはどうでしょうか。


CC BY-SA 4.0
2018-08-02T02:48:32.510
47172
2018-08-02T02:48:32.510
5008
47171
answer


元のテキストがSJISで書かれていて、lambdaないで特に文字コード変換を行なっていないなら、そのテキストはSJISのままです。  
metaデータをいくら書き換えたところで、中身には影響しません。


CC BY-SA 4.0
2019-06-01T09:26:32.647
55432
2019-06-01T09:26:32.647
34547
47171
answer