2009-04-20 20 views
0

私は1つのasp.netページから別のオブジェクトにオブジェクトを渡しています。私はBase64文字列としてオブジェクトをエンコードし、POSTパラメータとして渡しています。ただし、受信ページがPOST値を読み取るときに、Base64文字列に+記号がある場合は、改行で置き換えられます。例えば:ASP.NET Base64文字列の破損

...AABDEDS+DFEAED... 

...AABDEDS 
DFEAED... 

なるIは、受信ページの復号直前文字列に送信ページに直ちに符号化後のBase64文字列を比較し、それが唯一の違いです。私はHtmlEncoding()要求ストリームにそれを書く前に、base64文字列を試みたが、それは効果がなかったので、受信側の問題であるようです。

アイデア?

答えて

2

UrlEncodeを使用してください。 +は予約文字であり、エンコードする必要があります。

+0

反対側の%2Bにプラスになりますどの(片側にあなたのbase64文字列をServer.URLEncodeする必要があるとServer.URLDecodeます。それはしなかった理由を知ってはいけません – NYSystemsAnalyst

1

パラメータでbase64文字列を渡すときは、URLエンコードする必要があります(文字が適切に出現するように)。用途:

System.Web.HttpServerUtility.UrlEncode(base64String); 

HttpServer.UrlEncode Method (String)(System.Web)

+0

+1は正しい答えだが、Rexが最初にそこに着いた。ありがとう。 – NYSystemsAnalyst

0

+記号は、URL内のスペースには独自の評価さに特別なURL文字です。

あなたはそれはそれはそれだ、うん