2012-07-12 69 views
2

我使用JavaScript在cookie中設置一個值,並在代碼後面獲取cookie的內容。用相應的替換ASCII字符

但問題是,如果我正在存儲帶有一些特殊字符或空白字符的字符串,當我檢索cookie的內容時,特殊符號將轉換爲ASCII等效字符。

例如,如果我想將Adam - (SET)存儲在Cookie中,它將轉換爲Adam%20-%20%28SET%29並存儲,當我檢索它時,我會得到相同的Adam%20-%20%28SET%29。但我想在後面的代碼中得到這個Adam - (SET)

我如何得到這個。請幫忙。

+0

你想檢索在C#中? – 2012-07-12 08:08:22

+0

你能否澄清你是否需要在JS或C#中解碼? – carlosfigueira 2012-07-12 08:11:27

回答

1

C#

用途:

String decoded = HttpUtility.UrlDecode(EncodedString); 

HttpUtility.UrlDecode()是最可以在.NET Framwework使用其他替代品的使用的基本功能(見下文)。

如果需要,您可能需要指定編碼。

或者:

String decoded = Uri.UnescapeDataString(s); 

我們看看Uri.UnescapeDataString()的一些注意事項文檔。

JavaScript

var decoded = decodeURIComponent(s); 

跳使用unescape在其他問題建議之前,請閱讀decodeURIComponent vs unescape, what is wrong with unescape?。您也可以閱讀What is the difference between decodeURIComponent and decodeURI?

+0

感謝haylem它的工作原理。 :) – Bibhu 2012-07-12 08:11:56

+0

@Bibhu:不客氣,很高興它有幫助。如果您對其中一個答案感到滿意,請使用投票櫃檯下的勾號來接受它。 – haylem 2012-07-12 08:21:10

0

你可以使用JS中的unescape函數來做到這一點。

var str = unescape('Adam%20-%20%28SET%29'); 
0

您正在尋找HttpUtility.UrlDecode()(在System.Web命名空間,我認爲)

0

在javasrcipt你可以使用內置的decodeURIComponent,但我懷疑的是,當發送的值的字符串編碼是發生到服務器,所以C#的答案是你想要的。

相關問題