お蔵入り

clip!clip!
Ads By Google

フォームの情報をUTF-8で送信することは可能でしょうか?

メール配信ASPの都合で、
UTF-8でフォームの情報を送信したいのですが、
livedoorブログではエンコードがEUC-JPのため送信できません。

CSSの設定をEUC-JPからUTF-8に変えて試してみましたが、
これはやはりページ全体が文字化けしてしまいました。


どなたかUTF-8で送信できる方法をご存知ないでしょうか?

どうぞよろしくお願いいたします。

2007-07-13 11:38の質問
この質問は、30日間解決しなかったために自動的に質問が一旦閉じられました。

回答(1)

1.

2007-07-13 13:17:01
フォームを送る前にjavascriptを使って変換してはどうでしょうか。


自信度 : 自信あり 回答レベル : 回答
Ads By Google

コメント(5)

2007-07-13 16:48:17

UTF-8の別窓でフォームを作ってsubmitするのが一番楽なのではないでしょうか。普通はCGI(ASP)側で文字コードの処理をするものなので、ASPをいじれるなら、それが真っ当な解決です。

#2.  limitjump
2007-07-14 18:33:35

>wildwildcoloradoさん

ご回答いただき、ありがとうございます。

上記のページ拝見させていただきましたが、
私のJavaScriptへの理解が未熟なため、よく分かりませんでした。

やり方としては、データを送信する際に(submit();のところで)
各テキストボックスのvalueを、
まずEscapeUTF8()して、その値をさらにUnescapeUTF8()すればよいかと
思ったのですが…。

実際の詳しい記述のしかたが分かりません。

下のコメントに、使用しているソースコードを記述いたしましたので、
よろしければご指摘いただけないでしょうか?

どうぞよろしくお願いいたします。

#3.  limitjump
2007-07-14 18:39:47

<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>

#4.  limitjump
2007-07-14 18:41:44

>★オニキス☆さん

コメントいただき、ありがとうございます。

現段階では、ブログからホームページへのリンクをはり、
そちらのフォームから送信するようにしています。

つまり、UTF-8の別窓をホームページという扱いにしている状態です。

ただ、livedoorのブログにフォームを設置したほうが、
ブログに訪問したユーザにとって分かりやすいのでは?と考え、
ご質問させていただきました。

2007-07-19 01:01:18

えっと、回答1のリンク先ですが、関数名からすると、文字コードを変換するものではなさそうなので、無理かと。。。

てか、formのaccept-charset="euc-jp"にするとASP側が処理してくれるとかないでしょうか?

トラックバック(2)

トラックバックURL: