如何使用C#中的URL(RFC 1738)標準對字符串進行編碼?如何在C#中對字符串進行URL編碼
下面的在線工具是用我想要轉換的字符串的這個標準http://www.freeformatter.com/url-encoder.html
一個例子轉換字符串被test(brackets)
和編碼字符串應該是這樣的:
test%28brackets%29
如何使用C#中的URL(RFC 1738)標準對字符串進行編碼?如何在C#中對字符串進行URL編碼
下面的在線工具是用我想要轉換的字符串的這個標準http://www.freeformatter.com/url-encoder.html
一個例子轉換字符串被test(brackets)
和編碼字符串應該是這樣的:
test%28brackets%29
據RFC 1738:
Thus, only alphanumerics, the special characters "$-_.+!*'(),", and reserved characters used for their reserved purposes may be used unencoded within a URL.
HttpUtility.UrlEncode
或WebUtility.UrlEncode
都不會對這些字符進行編碼,因爲該標準說明可以使用未編碼的括號()
。
我不知道爲什麼你鏈接的URL Encoder/Decoder對它們進行編碼,因爲它也將它們列爲可用於URL的字符。
我打電話給第三方API通過HTTP和傳遞字符串中的參數。該字符串是UTF-8 URL編碼。我的API客戶端是用asp.net C#編寫的,因爲API主機可能是用Java編寫的。當字符串參數中有像括號/括號()這樣的字符時,UTF-8編碼器不會對它們進行編碼,而API主機會在%28和%29中對它們進行編碼,並且得到不正確的響應。任何建議如何解決這個問題? – rumi
該API在文檔http://docs.oracle.com/javase/1.5.0/docs/api/java/net/URLEncoder.html – rumi
中具有以下參考您可以看看這個:http:// stackoverflow .com/questions/846487/how-to-get-uri-escapedatastring-to-compliant-with-rfc-3986 – Dirk
Uri.EscapeDataString
做你想要的。請參閱MSDN。
[URL編碼使用C#]可能重複(https://stackoverflow.com/questions/575440/url-encoding-using-c-sharp) –