- - PR -
Request.QueryStringでの文字化け
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-11-15 19:01
Request.QueryStringの文字化けについて悩んでいます。
以前の会議室を参考にさせていただき、web.configの responseEncodingをshift-jis等にかえてみたのですが、 うまくいきません。 実際のコードは次のようになっております。 どなたかご存じのかた、どこが悪い気づかれた方、 どうぞ宜しくお願い致します。 @webform1でボタン押下時に次のように指定しています。 string show ="12345678910"; string startupScript = "<script language='JavaScript'>" + "window.open('../../WebForm2.aspx?id=name&status=" +show+"','hogohoge','width=500,height=350');</script>"; RegisterStartupScript("startup", startupScript); Awebform2では次のように獲得し、ラベルに表示しています。 SessionMes=Request.QueryString["status"]; this.Label1.Text = SessionMes; そうすると、webform2のラベルには、次のように表示されます。 「E234567891」 初めの1がEになり、最後の0は消えます。 どうしてでしょうか? ちなみに、web.configは規定値のutf-8でも、shift-jisでも 変わらずに同様の現象です。 どうぞ宜しくお願いします。 |
|
投稿日時: 2005-11-15 19:48
化ける文字列を HtmlEncode したらどうなりますか?
string show = HttpUtility.UrlEncodeUnicode("12345678910"); |
|
投稿日時: 2005-11-15 20:18
かるあさんありがとうございます。
HtmlEncodeを行ったらうまくいきました。 いろいろと調べていたのですが、ちょっとよく分からない部分が あります。 .NET-C#のソースコードは基本的にunicodeという認識です。 今、web.configの responseEncodingでは、utf-8を指定しています。 受け取る側も、投げる側も。 受け取ったあとのurlには「12345678910」は正しく 入っているが、どうして文字が化けちゃうのでしょうか? unicodeのソースコードを通っているからでしょうか? どこか分かりやすく説明が載っているサイトがありましたら 教えて頂けるとうれしいです。 |
1