axiosでShift-JISのページを取得する
問題
axiosはutf-8以外に対応してないのでshift-JISのページを取得しても文字化けをする
対応
npmモジュールiconvを使って取得したdataを変換する
code:js
axios.get(
'url',
{
responseType: 'arraybuffer',
transformResponse: (data) => {
const sjis = new Buffer (data, 'binary');
const utf8 = iconv.decode (sjis, "SHIFT_JIS");
return utf8;
}
}
).then((response) => {
console.log(response.data)
})
参考ページ
new Buffer (data, 'SHIFT_JIS') のところが間違ってる SHIFT_JISは引数で渡せない 'binary'でうまくいった
ArakiTakaki.icon Bufferは現在非推奨なため、Buffer.from()などを使った方が良いと思います!(今だと大丈夫になったのかな・・・?)
TJ.icon encode 問題は Axios 中に対応することは、Axios response 後に処理する欲しいですね。