0

ディレクトリ名とファイル名の間に円記号が含まれるコード ビハインド C# プログラムでファイルにアクセスしようとすると、Web プログラムでエラーが発生します。ファイルのアドレスは、'deaths\bakerd.htm' というクエリ値で私の Web ページに表示されます。ただし、ブラウザはそれを「deaths%08akerd.htm」に変換します。

WebページのURLは次のとおりです

 'http://localhost:57602/obitm.aspx?url=deaths%08akerd.htm' 

そして、Webページが見つからないと言いますが、Webページobitm.aspxは存在しますが、なぜ存在しないと言うのでしょうか?

Windows エクスプローラーでクエリ値の値を手動で「deaths/bakerd.htm」に変更すると、ブラウザーでクエリ値として入力されたときに変換が行われず、C# プログラムでファイルにアクセスできます。 .

を使用してjavascriptでクエリ値を変更しようとしました

   thisurl = url.replace("\\", "/") 

しかし、それは何も変わりませんでした。

C# プログラムで変換を試みたことはありません。では、プログラムで '\' を '/' に変更するにはどうすればよいでしょうか? なぜこれが起こっているのかわからず、非常に混乱しています。どんな助けでも大歓迎です。

4

4 に答える 4

2

@記号を前に付けて逐語的な文字列を使用してみてください

string url = @"http://localhost:57602/obitm.aspx?url=deaths\bakerd.htm".Replace("\\","/").ToString();
于 2013-10-07T05:53:50.600 に答える
0

試してみてくださいthisurl = url.Replace("\\", "/"); javascriptのように。

于 2013-10-07T05:22:34.373 に答える
0

クエリ文字列パラメーターを解析するには、次を使用できます。

NameValueCollection qscoll = HttpUtility.ParseQueryString(querystring);

MSDN ヘルプはこちら

または次のことができます。

HttpUtility.UrlEncode(Request.QueryString["url"]);
于 2013-10-07T05:57:14.613 に答える