2012-04-19 7 views
0

文字列エンコーディングに問題がありますか、おそらくその問題か、私は見落としています。基本的に、ランダムに、ユーザーが変更をコミットすると、テキストは%20で保存されます。まるで自分のデコードを完全に無視しているようです。 localhost、live、または任意のブラウザで私が起こることは決してありません。決して一貫していない、何がうまくいかないかをテストする方法を知らない。JavascriptからC#への文字列のエンコーディングとデコード - 役に立たない

だけつもりは基本的なパーツを貼り付けます。

テキストコントロールが

Javascriptの "エスケープ"、その後

<asp:TextBox TextMode="MultiLine" runat="server" txtActionUpdate"></asp:TextBox> 

ユーザー入力を受け入れ、に送信するAJAXメソッドに渡さをコードビハインド

01 iは以下でデコードWebMethod属性で

次いで

Test = Microsoft.JScript.GlobalObject.unescape(tAction); 

(以前あった:テスト= HttpUtility.UrlDecode(にTAction)。

デコード上記のオプションは完全に機能します(私にとって?)。しかし、ランダムに、ユーザーが作業しているときには、文字通りデコードステップをスキップし、エンコードされた形式(つまり:this%20is%20a%20Test%20string)でDBに書き込みます。コード。

複数の顧客(別々のURL)が1つのコードベースを持っています。公開中に、私は最初に削除して公開し、アプリケーションプールをクリアし、ユーザーにブラウザキャッシュをクリアさせる(実際に後者を嫌う)が、これは決して一貫しているようではない。私はこれがコードの問題ではなく "キャッシュ"または "サーバー設定"の問題であると感じています。 ;) 笑。誰でも何か趣味がある?

+0

もっとコードを見ることなく、おそらく助けが不可能になるでしょう。 – Pointy

答えて

1

これにはescapeを使用しません。私はencodeURIComponentを使用し、次にHttpUtility.UrlDecodeでデコードします(私は思う、MSDNは現在、明らかにダウンしている)。

+0

私が変更した唯一のセクションは、デコード方法の裏にあるコードでした。私はその罰金を引き受けたので、常に「エスケープ」を残しました。受信側のサーバーが特定の文字を「理解」できない可能性があるため、「エスケープ」を避けることを言及しているかなりのフォーラムがあります。私はあなたが提案したものを試してみるつもりです。私はそれを前に見てきました。ちょうど平易なテキスト(/ \ *などを含む)に並んでいるように、URLのためにもっと考えていました。わーい! ;) –

1

私の推測では、クライアント上のどこかのデータが2回エンコードされているので、あなたが見ている効果につながります。

+0

これはとても良い考えです。 –

関連する問題