- - PR -
エンマック文字化け
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-04-11 11:03
Webサーバの開発をしていますが、クライアントにて、以下のようにメッセージを
ポップアップ画面に表示するとき、エンマックが文字化けになります。 string rtnMsg = "パス\"F:\\200504\\01\\WT0503105959.csv\"へのアクセスが拒否されました"; string strScript="<script type='text/javascript' charset='UTF-8'>alert('"+rtnMsg+"');"; strScript+="</script>"; this.Response.Write(strScript); C#で開発したのですが、出力ファイル名をHttpUtility.UrlEncodeで変換しても エンマックが正しく表示されない。どうしたらいいのでしょうか ご教示お願いします |
|
投稿日時: 2005-04-11 17:27
こんにちは。
回答ではありません。 >エンマック とは、なんでしょうか? (円マーク[yen sign]のことなのかなぁ。。。) |
|
投稿日時: 2005-04-11 22:25
問題はHttpUtility.HtmlEncodeメソッドを使用することで解決しますが。。。
“エンマック”ですか。その呼称は初めて聞きました。 Response.Writeメソッドは、よほどのことでないかぎり、使用するべきではありません。HTMLの構成が崩れます。RegisterStartupScriptメソッドなどを使用しましょう。 アプリケーションの対象などにもよりますが、サーバーの物理的なパスを表示するのは、どうかと。。。 _________________ |
|
投稿日時: 2005-04-13 10:39
すみません、「エンマック」は円マークの誤りです
ご教示の通り、HttpUtility.HtmlEncodeとRegisterStartupScriptメソッドを使って、試してみましたが、円マークはやはり文字化けになります。 ソースは以下のようです string rtnMsg = "パス\"A:\\200503\\01\\QD050301111041.csv\"へのアクセスが拒否されました"; if ( rtnMsg.IndexOf("\\") >= 0 ) { int first = rtnMsg.IndexOf("\""); int last = rtnMsg.LastIndexOf("\""); if ( first >= 0 && last >= 0 && first != last ) { string fname = rtnMsg.Substring(first+1,last-first-1); rtnMsg = rtnMsg.Replace(fname,HttpUtility.HtmlEncode(fname)); } } string strScript="<script type='text/javascript' charset='UTF-8'>alert('"+rtnMsg+"');"; strScript+="</script>"; this.RegisterStartupScript("test",strScript); |
1