簡體   English   中英

從Javascript到C#編碼和解碼字符串 - 不起作用

[英]Encoding and Decoding Strings From Javascript to C# - Not Working

我遇到了一些字符串編碼的問題,也許是一個iis問題,或者我忽視的東西。 基本上,隨機地,當用戶提交更改時,文本將與%20一起存儲,就像它完全忽略我的解碼一樣。 它永遠不會發生在localhost,live或任何瀏覽器上; 它永遠不會一致,甚至不知道如何測試出了什么問題。

只是要粘貼基本部分:

文本控制接受用戶輸入

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

然后

Javascript“轉義”並傳遞給ajax方法發送到codebehind

var tAction = escape(document.getElementById("txtActionUpdate").value);

然后

在webmethod我解碼如下:

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

(以前是: Test = HttpUtility.UrlDecode(tAction);

但是,上述兩種解碼選項都能完美地工作(對我而言?)。 但隨機地,當用戶正在使用它時,它將逐字地“跳過”解碼步驟並將其以編碼格式寫入數據庫(即:此%20is%20a%20Test%20string),就好像我從未有過代碼。

我們有多個客戶(單獨的URL),但有一個代碼庫。 在發布期間,我首先刪除然后發布,清除應用程序池,讓用戶清除瀏覽器緩存(實際上討厭后者),但這似乎永遠不會保持一致。 我有一種感覺,這是一些“緩存”或“服務器設置”問題而不是代碼問題...讓我看起來很糟糕! ;) 大聲笑。 有人有一些預感?

我不會為此(或其他任何東西)使用escape 我使用encodeURIComponent ,然后使用HttpUtility.UrlDecode進行解碼(我認為; MSDN現在已經關閉了,顯然)。

我的猜測是,在客戶端的某個地方,數據被編碼兩次,然后導致你看到的效果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM