2012-09-04 24 views
0

我必須在c#中編碼字符串並使用javascript unescape函數對其進行解碼。在服務器中編碼和在javascript中使用換碼解碼

javascript unescape是唯一的選擇,因爲我發送字符串與獲取請求的一些API使用unescape來裝飾它。

我試過幾乎所有

server.urlencode 
WebUtility.HtmlEncode 

和很多其他編碼!我甚至對使用JScript

沒有什麼是不能編碼像「越獄」功能

任何想法如何使它工作試過Uri.EscapeDataString

編輯:

這是我的代碼

string apiGetRequest = String.Format("http://212.00.00.00/Klita?name={0}&city={1}&CREATEBY=test ", Uri.EscapeDataString(name), Uri.EscapeDataString(city)); 
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(apiGetRequest); 
req.GetResponse(); 
+1

字符串代表什麼?那是HTML嗎?一個URL?還有別的嗎?爲什麼你需要對它進行編碼?請發佈一些示例字符串,以及您如何期望它們被轉義。 – Oded

+0

看看這個:http://stackoverflow.com/questions/3778165/unescape-javascripts-escape-using-c-sharp – Sethu

+0

我編輯山問題和添加代碼示例 – baaroz

回答

1

你能不能給你想要做的編碼字符串和編碼結果的例子嗎?

URLencoding是您需要的正確編碼類型。確保你不會在你的代碼中的某個地方對你的字符串進行雙重編碼。

您可能需要使用decodeURIComponent代替unescape,因爲unescape UTF-8感知,從而可能導致在解碼後斷了線。

查看http://xkr.us/articles/javascript/encode-compare/瞭解更多信息。

編輯:

我不知道很多關於ASP,但它看起來像你試圖訪問的URL不是一個瀏覽器,但與ASP的服務器端應用程序。那麼,你的服務器不運行任何JS代碼。你只需檢索HTML標記,也許一些JS代碼是一個大字符串。此代碼將在瀏覽器中解析和執行,但不在ASP中。

+0

我知道decodeURIComponent會工作,不幸的是我發送它到一些API,它只能與unescape – baaroz

+0

一起工作好吧,那麼你無能爲力。 'escape'是一個功能有限的舊功能。嘗試聯繫JS代碼的提供者,並要求他修復他的代碼。 – LeJared

相關問題