HTMLファイルがUTF-8で書かれていて、画面更新時にはSJISでPOSTする必要がある場合の方法

javascript

javascriptの言語仕様の話からは少し逸れますが、webアプリケーションを作成する際、画面遷移時に文字コードの制約がある場合の対応方法を記載します。

具体的にはタイトルの通り、HTMLファイルがUTF-8で書かれていて、画面更新時にはSJISでPOSTする方法です。

<form name="form1" method="post" action="http://xxxxxx/" accept-charset='Shift_JIS'>

<input type="hidden" name="test" value="a">

<input type="submit" value="送信" onClick="buff=document.charset; document.charset='Shift_JIS'; document.form[0].submit(); document.charset=buff;">

</form>

送信ボタンのonClickに文字コードを指定して送信する処理を書くことで、更新時にのみ文字コードを変更して値を送信できます。

決済システム等を実装する際、相手側サーバのAPIがSJISしか受け取れない場合で、なおかつサーバ側言語のフレームワークの制約などで文字コードがSJIS以外で固定されているときに、このように書くケースがあります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です