我想準備一個字符串以將其放入「發佈」請求中。不幸的是,我發現編碼url的所有方法似乎只將百分比編碼應用於少數字符。各種方法,例如。 HttpUtility.UrlEncode
,留下一些字符,如()和§不變。使用c編碼每個utf-8字符編碼
回答
不幸的是,大多數現有的轉換器只查看不兼容的URL字符。主要用於(如你所提到的)URL編碼,或用於防止跨站點腳本。
如果您想從頭開始創建一個,查找起來需要一些時間,但這很有趣。您可以覆蓋現有編碼器並添加與您有關的其他字符,或者更改所有字母和數字。
這裏是一個很好的鏈接,UTF/ASCII - > HTML編碼(%)
.net爲什麼不包含這樣的轉換器?當試圖快速開發時,缺乏尷尬和沮喪。我希望不需要下降到這樣的基本任務。 – user1046221
該鏈接顯示HTML編碼,而不是URL編碼。 – Jacob
良好的發展......謝謝雅各布 –
這是更你在找什麼呢?
string input = @"such as() and § untouched.";
//Console.WriteLine(input);
Console.WriteLine(HttpUtility.UrlEncodeUnicode(input));
Console.WriteLine(HttpUtility.UrlEncode(input));
string everything = string.Join("", input.ToCharArray().Select(c => "%" + ((int)c).ToString("x2")).ToArray());
Console.WriteLine(everything);
Console.WriteLine(HttpUtility.UrlDecode(everything));
//This is my understanding of what you're asking for:
string everythingU = string.Join("", input.ToCharArray().Select(c => "%u" + ((int)c).ToString("x4")).ToArray());
Console.WriteLine(everythingU);
Console.WriteLine(HttpUtility.UrlDecode(everythingU));
,輸出:
such+as+()+and+%u00a7+untouched.
such+as+()+and+%c2%a7+untouched.
%73%75%63%68%20%61%73%20%28%29%20%61%6e%64%20%a7%20%75%6e%74%6f%75%63%68%65%64%2e
such as() and � untouched.
%u0073%u0075%u0063%u0068%u0020%u0061%u0073%u0020%u0028%u0029%u0020%u0061%u006e%u0064%u0020%u00a7%u0020%u0075%u006e%u0074%u006f%u0075%u0063%u0068%u0065%u0064%u002e
such as() and § untouched.
- 1. C#UTF8編碼
- 2. C++ UTF8編碼
- 3. 編碼字符串UTF8
- 4. JSON字符編碼vs utf8
- 5. C++字符串編碼UTF8/unicode的
- 6. UTF8編碼C#Webrequest
- 7. 編碼UTF8 C#過程
- 8. UTF8編碼/€
- 9. UTF8編碼含+
- 10. php utf8編碼
- 11. utf8和編碼
- 12. C++字符編碼
- 13. 字符串UTF8編碼問題
- 14. UTF8編碼字符不上的NodeJS
- 15. UTF8編碼的特殊外國字符
- 16. Base64在SQL中編碼utf8字符串
- 17. UTF8字符編碼在Java中
- 18. Zend Framework轉義utf8編碼字符
- 19. 比較UTF8編碼的字符
- 20. 特殊字符PHP UTF8編碼問題
- 21. Base64和utf8 /國家字符編碼
- 22. php,trim utf8編碼字符串
- 23. 更改字符串編碼WIN1250爲utf8
- 24. Nginx的:UTF8編碼字符導致
- 25. Javascript字符串編碼Windows-1250到UTF8
- 26. asp.net字符編碼問題utf8
- 27. UTF8編碼無法解碼
- 28. UTF8 python編碼和解碼
- 29. PHP utf8編碼和解碼
- 30. objective-c如何用UTF8編碼NSArray?
我可能是錯的 - 但嘗試UrlEncodeUnicode –
的選擇,當然,如果後面的ToString( 「X2」) –
只是一些GetBytes會我上面說什麼,適用到HttpUtility.UrlEncodeUnicode也是如此。其中字符!,()和<不會被轉義。 – user1046221