- PR -

cgiとasp.netの連携について

投稿者投稿内容
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2005-03-29 20:45
> ASP側は、  すべてUTF-8、
> でした。 

Web.configのglobalizationで変更できます。
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2005-03-29 23:41
引用:
 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)

UTF-8としてバイトにしたものをUTF-8のStringにしても意味がないのでは?
shift-jisで受け取ったつもりならshift-jisとして処理しないと。と言ってもASP.NET
でのRequestEncodeingはtodoさんがおっしゃるようにWeb.config等での設定できまり
ますからそこを設定すれば。(strCGI_Mojiをデバッグで見たらどうなってるのかな)

引用:
「姓1」と書いたはずの文字列->「ZC1」

「姓1」はどうやって渡したのですか?aspxのページにPOSTのパラメータ?
GETパラメータ?(URL引数)。その他?
「ZC1」だったのはメールの内容?それならWeb.ConfigのResponseEncodingを変えるのは
効果がありません。

引用:
.html、.cgi、.tmp、.pl、すべての文字コードを「UTF-8」にすれば
化けなくなる、ということなのでしょうか?(すぐに試してみます)

.NETに来る前までうまくいってるのならそこまでしなくても.NET側で受け取るEncoding
をshift-jis(?)にすればよいです。Web.configのRequestEncodingをshift-jis(?)に
設定すればいい気がします。(cgiがeucで吐いてるならeucな気がしますが)

引用:
.aspxと.aspx.vbと.xmlをShift-Jisにする、ということでしょうか?

ファイルがどのEncodingで書かれているか、とレスポンスやリクエストをどのEncodingで
受け取り/送出するかは別の問題ですよ、ね。

[ メッセージ編集済み 編集者: べる 編集日時 2005-03-29 23:44 ]
れん
会議室デビュー日: 2004/11/11
投稿数: 5
投稿日時: 2005-03-30 10:39
>Web.configのglobalizationで変更できます。

 以下の修正をしましたら、文字化けが発生しなくなりました。

[デフォルト(修正前)]
<globalization requestEncoding="UTF-8" responseEncoding="UTF-8" />

[修正後]
<globalization requestEncoding="Shift-Jis" responseEncoding="Shift-Jis" />

>UTF-8としてバイトにしたものをUTF-8のStringにしても意味がないのでは?
>shift-jisで受け取ったつもりならshift-jisとして処理しないと。と言ってもASP.NET
>でのRequestEncodeingはtodoさんがおっしゃるようにWeb.config等での設定できまり
>ますからそこを設定すれば。(strCGI_Mojiをデバッグで見たらどうなってるのかな)

 CGIからShift-Jisとして送られたデータをUTF-8でうごいているASP.NETで
 受け取ると文字化けしていましたので、UTF-8に変換すれば・・・と思って
 おりました。

 デバックで変換前と変換後をみてもどちらも化けていたのですが、Web.Config
 を変えるとなおるということは、ASP.NETが受け取った時点ですでにUTF-8に
 変換済してしまっていたのですね。

>「姓1」はどうやって渡したのですか?aspxのページにPOSTのパラメータ?

 POSTのパラメータでした。

>ファイルがどのEncodingで書かれているか、とレスポンスやリクエストをどのEncodingで
>受け取り/送出するかは別の問題ですよ、ね。

 以前、過去に動作していたHTMLをVisualStudioで編集したところ、ブラウザ
 でみようとすると文字化けしてしまう、という現象がありました。

 その際に編集前と編集後のファイルを比較したところ、VisualStudioが自動
 的に文字コードを変換してしまっていた、ということがありました。

 エディタで開いて文字コードを元にもどしたらなおったので、そのときの
 記憶でそのようなことをしておりました。

 確かにそれとこれとは全然無関係ですね・・・。


もしこちらで教えていただかなかったら、いまでも文字コードの変換をソース側
でがんばったり、エディタで開いて文字コードを変えたりしていたかと思います。

みなさま、本当にありがとうございました。


[ メッセージ編集済み 編集者: れん 編集日時 2005-03-30 11:06 ]

[ メッセージ編集済み 編集者: れん 編集日時 2005-03-30 11:07 ]

[ メッセージ編集済み 編集者: れん 編集日時 2005-03-30 11:08 ]

スキルアップ/キャリアアップ(JOB@IT)