Nag's Blog
Avatar

KEEP ON GROWING

Expressにcharset=shift_jisが来たときの乗り越え方(暫定対応)

課題

APIのリクエストを受け付けた際にcharset=shift_jisだったためエラーになった。
ExpressのbodyParserが"utf-8"以外はエラーにするために発生した。

対応

Bodyの中身に日本語が含まれないことが保証されていたため、headerのContent-Typeのcharsetを削除した。
charsetが存在しない場合はbodyParserでエラーにはならない。
しかし日本語が含まれている場合の対応策は依然としてわからない。

学んだこと

当初、charset=shift_jisに対して、他のリクエストと同じようにutf-8に置き換える実装をした。
しかし、shift_jisで送られてくるリクエストに対してutf-8を分類するのは不整合が起きている状態である。
避けられるのであれば避けるべきである。
不整合な状態が発生することに対して本当に避けることが出来ないのかをよく考えるべきである。