フォームの情報をUTF-8で送信することは可能でしょうか?
メール配信ASPの都合で、UTF-8でフォームの情報を送信したいのですが、
livedoorブログではエンコードがEUC-JPのため送信できません。
CSSの設定をEUC-JPからUTF-8に変えて試してみましたが、
これはやはりページ全体が文字化けしてしまいました。
どなたかUTF-8で送信できる方法をご存知ないでしょうか?
どうぞよろしくお願いいたします。
回答(1)
1.
コメント(5)
UTF-8の別窓でフォームを作ってsubmitするのが一番楽なのではないでしょうか。普通はCGI(ASP)側で文字コードの処理をするものなので、ASPをいじれるなら、それが真っ当な解決です。
>wildwildcoloradoさん
ご回答いただき、ありがとうございます。
上記のページ拝見させていただきましたが、
私のJavaScriptへの理解が未熟なため、よく分かりませんでした。
やり方としては、データを送信する際に(submit();のところで)
各テキストボックスのvalueを、
まずEscapeUTF8()して、その値をさらにUnescapeUTF8()すればよいかと
思ったのですが…。
実際の詳しい記述のしかたが分かりません。
下のコメントに、使用しているソースコードを記述いたしましたので、
よろしければご指摘いただけないでしょうか?
どうぞよろしくお願いいたします。
<form id="registForm" method="post" action="ASPのデータ確認ページのURL" accept-charset="UTF-8">
<input type="hidden" name="id" value="確認ページの番号"/><input type="hidden" name="confirmed" value="false"/><input type="hidden" name="mailAccept" value="true" />
<table width="430" border="0" cellspacing="0" cellpadding="0">
<tr>
<th>お名前</th>
<td>姓 <input type="text" name="nameFamily" size="20" value="" class="name" /> 名 <input type="text" name="nameGiven" size="20" value="" class="name" /></td>
</tr>
<tr>
<th>メールアドレス</th>
<td><input type="text" name="mail" size="40" value="" class="mail" /></td>
</tr>
</table>
<script type="text/javascript">
document.write('<button><a href="#" onclick="submit();">申し込み</a></button>');
</script>
</form>
>★オニキス☆さん
コメントいただき、ありがとうございます。
現段階では、ブログからホームページへのリンクをはり、
そちらのフォームから送信するようにしています。
つまり、UTF-8の別窓をホームページという扱いにしている状態です。
ただ、livedoorのブログにフォームを設置したほうが、
ブログに訪問したユーザにとって分かりやすいのでは?と考え、
ご質問させていただきました。
えっと、回答1のリンク先ですが、関数名からすると、文字コードを変換するものではなさそうなので、無理かと。。。
てか、formのaccept-charset="euc-jp"にするとASP側が処理してくれるとかないでしょうか?



