- - PR -
cgiとasp.netの連携について
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-03-29 17:12
メール送信画面にて、送信画面の動作部分をCGIで、
メール送信処理の部分をASP.NETで作成しています。 やっと送信処理まで作り終わり、さてテストでも してみようかと処理を実行したところ、文字化けが 発生しました。 1バイト文字は問題ないのですが、2バイト文字が なぞの文字列になっております。 例) 「姓1」と書いたはずの文字列->「ZC1」 文字コードが違うのかなと思い、ASP側で受け取った 文字列を以下の処理で変換してみました。 ※CGIからうけとった文字列を格納した変数「strCGI_Moji」 Dim bytTemp As Byte() Dim strTemps As String bytTemp = System.Text.Encoding.GetEncoding("UTF-8").GetBytes(strCGI_Moji) strTemps = System.Text.Encoding.GetEncoding("UTF-8").GetString(bytTemp) 変換しても、わけのわからない文字のままでした。 ひょっとしてCGIとASP.NETというのは、通常このように連携させたりはしないの でしょうか? よろしくご教授お願い致します。 [ メッセージ編集済み 編集者: れん 編集日時 2005-03-29 17:14 ] | ||||||||
|
投稿日時: 2005-03-29 18:07
肝心の文字コードはどのようになっているの?
どの時点で文字化けが発生しているの? ASP.NETと他の何かで書いたCGIとの連携はどのような方法で実現しているの? 他の何かで書いたCGIは、何を使って作ったの?Java?Perl?C言語? って辺りを明確にしないと中々解決しないと思う。 ASP.NETは標準ではUTF-8を使用するんだけど、利用する文字コードは全てUTF-8で統一しているんだよね?
普通はしない。だって分離連携させたとして、何かメリットある? _________________ 甕星 <mikahosi@abox9.so-net.ne.jp> http://blogs.msmvp.jp/mikahosi/ [ メッセージ編集済み 編集者: 甕星 編集日時 2005-03-29 18:07 ] | ||||||||
|
投稿日時: 2005-03-29 18:19
メールの送信なら.NETだけで出来るのでは?
| ||||||||
|
投稿日時: 2005-03-29 18:23
ご返信ありがとうございます。
>肝心の文字コードはどのようになっているの? 甕星さんにこのご指摘を受けて、調べてみました。 CGI側のうち、 .html と .tmpはShift-Jis、 .cgiはEUC、 ASP側は、 すべてUTF-8、 でした。 >どの時点で文字化けが発生しているの? >ASP.NETと他の何かで書いたCGIとの連携はどのような方法で実現しているの? 入力画面(.html)から.cgiを起動いたしまして、 .tmpを元に確認画面を表示、までは問題ありません。 そのつぎにフォームロードイベントを利用して ASP側でメール送信を行っているのですが、 そこで受け取っている文字列をみてみるとすでに 化けております。 >他の何かで書いたCGIは、何を使って作ったの?Java?Perl?C言語? Perlで書いたものだと思います。 >ASP.NETは標準ではUTF-8を使用するんだけど、利用する文字コードは全てUTF-8で統一しているんだよね? .html、.cgi、.tmp、.pl、すべての文字コードを「UTF-8」にすれば 化けなくなる、ということなのでしょうか?(すぐに試してみます) > >引用: >-------------------------------------------------------------------------------- > > >れんさんの書き込み (2005-03-29 17:12) より: >ひょっとしてCGIとASP.NETというのは、通常このように連携させたりはしないの >でしょうか? > >-------------------------------------------------------------------------------- > > >普通はしない。だって分離連携させたとして、何かメリットある? デザイナー部門がCGIで、プログラミング部門がASP.NETで開発を行っているため、 このような連携となりました。。 | ||||||||
|
投稿日時: 2005-03-29 18:44
ちなみにそういうことではなくて、ASP.NETで受け取る予定の文字列(CGIから送られて?くる文字列)がどういう仕様なの?って話だと思います… # ってかいろんな箇所のいろんなタイミングやらなんやらでの # コードがごちゃ混ぜに語られてるので、あまり意味がないような気がす。
これも、この間がどうなっているかが重要なんですよね。 # ASP.NETのページにPOST? | ||||||||
|
投稿日時: 2005-03-29 18:57
>メールの送信なら.NETだけで出来るのでは?
はい、本来の仕様ではそうでした。 デザインがからんでややこしくなったのですが・・・。 >ちなみにそういうことではなくて、ASP.NETで受け取る予定の文字列(CGIから送られて?くる文字列)がどういう仕様なの?って話だと思います… 文字列の文字コードは、(おそらく)Shift-Jisかと思われます。 | ||||||||
|
投稿日時: 2005-03-29 19:15
だったらASP.NET側で使用する文字コードをShiftJISにすれば化けないんじゃない? #でも、開発に使うミドルウェアをPerlかASP.NETに統一するのが最良だと思う。 _________________ 甕星 <mikahosi@abox9.so-net.ne.jp> http://blogs.msmvp.jp/mikahosi/ | ||||||||
|
投稿日時: 2005-03-29 19:26
>だったらASP.NET側で使用する文字コードをShiftJISにすれば化けないんじゃない?
.aspxと.aspx.vbと.xmlをShift-Jisにする、ということでしょうか? |