いけむランド

はてダからやってきました

文字コードを変換するだけの Netlify Functions を書いてみた

Twitter を見てると、自分が住んでいる地域の新型コロナウイルス感染症対策サイト (非公式 fork) ができたというのが流れてました。


stopcovid19-ichikawa.netlify.app


このサイトのデータは市のサイトから取得しているようなのですが、どうもそこの文字コードShift_JIS なせいで Google SpreadSheet の importhtml では文字化けしてしまうとのことでした。



support.google.com


ツイートのリプには GAS を使ってスマートに解決する方法が提示されているのですが、自分はそこにフックさせる方法を知らなかったため、文字コード変換する Netlify Functions を書くというパワープレイをしてみました。


github.com


中身は単に node-fetch で HTML を取得して、それを encoding.js で UTF-8 に変換して返すだけです。


github.com


github.com


これを Netlify にデプロイして、この Netlify Functions 経由で目的のページを取得すると、Shift_JIS で書かれた HTML も UTF-8 に変換されて、文字化けせずに読み込めることを確認しました。


f:id:fd0:20200604000313p:plain
Shift_JIS で書かれたページを UTF-8 に変換して読み込んだ Spread Sheet


Netlify 面白いですね。