0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWSのLambdaとAPI Gatewayでプロキシ統合てhtmlを表示しようとしたら文字化けした

Last updated at Posted at 2024-09-02

AWSでLambdaとAPI GatewayのRest APIを用いてサーバーレスでWebサイトを作ろうとしたところ、日本語のhtmlを表示しようとしたときに文字化けしてしまった。
このとき、API Gatewayの設定でLambdaのプロキシ統合は有効にしていて、Lambdaのソースコードはざっくりとは下記の通り。

def lambda_handler(event, context):
    html = """\
<h1>日本語を含むhtml</h1>
<p>あいうえおかきくけこ</p>
"""
    return {
        "statusCode": 200,
        "headers": {
            "Content-Type": "text/html"
        },
        "body": html
    }

調べてみると、プロキシ統合を有効にしない場合ではAPI Gatewayの設定で「Content-Typeをapplication/json;charset=UTF-8にする」ことにより日本語が使えるようになるらしいので、これに習い、プロキシ統合は有効のままでソースコードを下記のように修正した。

def lambda_handler(event, context):
    html = """\
<h1>日本語を含むhtml</h1>
<p>あいうえおかきくけこ</p>
"""
    return {
        "statusCode": 200,
        "headers": {
            "Content-Type": "text/html; charset=UTF-8"
        },
        "body": html
    }

text/htmlの後にcharset=UTF-8を追加した。これで再度確認したところ、無事日本語を文字化け無しで表示することができた。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?