Tôi muốn tạo chuỗi thành URL bằng C#, phải có thứ gì đó trong khung .NET cần trợ giúp, đúng không ?.Làm cách nào để thay thế tất cả các khoảng trống bằng% 20 trong C#
Trả lời
Tôi tin rằng bạn đang tìm kiếm HttpServerUtility.UrlEncode.
System.Web.HttpUtility.UrlEncode(string url)
Tôi nghĩ [Uri.EscapeUriString()] (https://msdn.microsoft.com/en-us/library/system.uri.escapeuristring%28v=vs.110%29.aspx) là phương pháp thích hợp nếu chúng tôi có để tôn giáo về nó :) –
@StoyanDimov: 'EscapeUriString()' không thoát '&' cũng không '=' cũng không '?, vì vậy' EscapeDataString() 'dường như là một trong những sử dụng. –
Ai đó đã chỉnh sửa câu hỏi này để thay đổi hoàn toàn câu trả lời. Chúng tôi [không nên sử dụng chỉnh sửa để thay đổi ý nghĩa] (http://stackoverflow.com/help/editing) của một bài đăng cụ thể. – palswim
Sử dụng HttpServerUtility.UrlEncode
Từ các tài liệu:
String TestString = "This is a <Test String>.";
String EncodedString = Server.HtmlEncode(TestString);
Cập nhật: Đây thực sự mã hóa Html không url. Sử dụng UrlEncode (TestString) là tất cả những người có thể đọc tốt hơn tôi nói. Không xóa này trên cơ hội tắt ai đó tìm thấy thread này trong khi tìm kiếm mã hóa html.
OP hỏi về Mã hóa URL; không phải HTML Encoding. –
Không, đây là mã hóa HTML, không phải mã hóa URL (như tên ngụ ý ...) –
Yup, bạn nói đúng, sử dụng UrlEncode() để mã hóa url - đây là mã hóa Thực thể Html chỉ –
Một cách khác để làm điều này là sử dụng Uri.EscapeUriString(stringToEscape)
.
Thật không may, phương pháp này không 't thoát '&' ký tự. –
Nó cũng không thoát '=', hay '?'. Nó xuất hiện 'Uri.EscapeDataString()' là con đường để đi. –
tôi thấy hữu ích System.Web.HttpUtility.UrlPathEncode(string str);
Nó thay thế không gian với% 20 và không phải với +.
Dường như không có phương thức UrlPathDecode? – syclee
Có, ít nhất là 4.0. System.Web.HttpUtility.UrlDecode ("a% 20b") sản lượng "a b" – Abacus
Nó hoạt động nhưng không sử dụng vì nó dành cho trình duyệt. Sử dụng Uri.EscapeUriString (STRING) để thay thế. MSDN: "Không sử dụng; chỉ dành cho khả năng tương thích của trình duyệt. Sử dụng UrlEncode". http://msdn.microsoft.com/en-us/library/system.web.httpserverutility.urlpathencode.aspx – VRC
Để thoát đúng không gian cũng như phần còn lại của các ký tự đặc biệt, hãy sử dụng System.Uri.EscapeDataString(string stringToEscape)
.
Nếu [nhận xét là câu trả lời thực tế] (http://stackoverflow.com/questions/1517586/how-do-i-replace-all-the-spaces-with-20-in-c-sharp/36462468#comment_1517592), ai đó cần phải làm cho rằng một câu trả lời cho câu hỏi. – palswim
có, điều này xử lý không gian, # và%, nhưng mã hóa/thành% 2f – kite
Tôi cũng cần làm điều này, tìm thấy câu hỏi này từ nhiều năm trước nhưng tiêu đề câu hỏi và văn bản không hoàn toàn phù hợp và sử dụng Uri.EscapeDataString
hoặc UrlEncode
(không sử dụng cái đó!) trừ khi chúng ta đang nói về việc chuyển các URL dưới dạng tham số cho các URL khác.
(Ví dụ, đi qua một URL gọi lại khi thực hiện xác thực mở ID, Azure AD, vv)
Hy vọng đây là câu trả lời thực tế hơn cho câu hỏi: Tôi muốn thực hiện một chuỗi thành một URL sử dụng C# , phải có một cái gì đó trong khuôn khổ .NET sẽ giúp, phải không?
Có - hai chức năng rất hữu ích cho việc thực hiện chuỗi URL trong C#
String.Format
để định dạng URLUri.EscapeDataString
cho thoát bất kỳ thông số trong URL
Mã này
String.Format("https://site/app/?q={0}&redirectUrl={1}",
Uri.EscapeDataString("search for cats"),
Uri.EscapeDataString("https://mysite/myapp/?state=from idp"))
sản xuất kết quả này
https://site/app/?q=search%20for%20cats&redirectUrl=https%3A%2F%2Fmysite%2Fmyapp
Mà có thể được sao chép một cách an toàn và dán vào thanh địa chỉ của trình duyệt, hoặc src
thuộc tính của thẻ HTML A
, hoặc sử dụng với curl
, hoặc mã hóa thành mã QR, v.v.
Và tương đương JavaScript sẽ giống như '" https: // site/app /? Q = "+ encodeURIComponent (" tìm kiếm mèo ") + "& redirectUrl =" + encodeURIComponent ("https: // mysite/myapp /? state = từ idp") 'tạo ra cùng một đầu ra. – nothingisnecessary
Như đã nhận xét về câu chuyện được phê duyệt, phương pháp HttpServerUtility.UrlEncode thay thế dấu cách bằng dấu + thay vì% 20. Sử dụng một trong hai phương pháp này thay vì: Uri.EscapeUriString() hoặc Uri.EscapeDataString()
Mẫu mã:
HttpUtility.UrlEncode("https://mywebsite.com/api/get me this file.jpg")
//"https%3a%2f%2fmywebsite.com%2fapi%2fget+me+this+file.jpg"
Uri.EscapeUriString("https://mywebsite.com/api/get me this file.jpg");
//"https://mywebsite.com/api/get%20me%20this%20file.jpg"
Uri.EscapeDataString("https://mywebsite.com/api/get me this file.jpg");
//"https%3A%2F%2Fmywebsite.com%2Fapi%2Fget%20me%20this%20file.jpg"
//When your url has a query string:
Uri.EscapeUriString("https://mywebsite.com/api/get?id=123&name=get me this file.jpg");
//"https://mywebsite.com/api/get?id=123&name=get%20me%20this%20file.jpg"
Uri.EscapeDataString("https://mywebsite.com/api/get?id=123&name=get me this file.jpg");
//"https%3A%2F%2Fmywebsite.com%2Fapi%2Fget%3Fid%3D123%26name%3Dget%20me%20this%20file.jpg"
- 1. Xóa tất cả các khoảng trống và các dòng trống
- 2. Thay thế các khoảng trống trong URL
- 3. làm thế nào để thay thế tất cả các chữ hoa với khoảng cách?
- 4. Làm thế nào để thay thế các giá trị trống (null) bằng 0 cho tất cả các bản ghi?
- 5. Thay thế tất cả các ký tự khoảng trắng
- 6. Kiểm tra xem chuỗi có trống hoặc tất cả các khoảng trắng trong C#
- 7. Làm cách nào để thay thế khoảng trắng trong chuỗi bằng dấu gạch dưới trong C#?
- 8. jQuery thay thế khoảng trống trong chữ
- 9. Làm cách nào để có khoảng trống trong MSBuild WebProjectOutputDir?
- 10. Khoảng trắng ASP.NET hoặc% 20 trong URL
- 11. Làm cách nào để làm cho một cột trong bảng điền vào tất cả khoảng trống ngang phụ tùng?
- 12. Làm cách nào để thay thế nhiều dòng trống bằng một dòng trống trong bash?
- 13. Thay thế tất cả các url trong một div
- 14. Cách xóa tất cả các khoảng trắng trong java
- 15. Linux - Thay thế khoảng trống trong tên tệp
- 16. Làm thế nào để nhập một khoảng trống trong minibuffer thay vì hoàn thành một từ?
- 17. Làm cách nào để tạo các tệp thẻ JSP KHÔNG bỏ qua tất cả khoảng trắng?
- 18. Làm cách nào để thụt lề các khoảng trống trong các emac?
- 19. Xóa tất cả khoảng cách trong QGridLayout
- 20. Làm thế nào để thay thế chuỗi trong tất cả các tài liệu trong Mongo
- 21. C#: Tìm tất cả các khối catch trống
- 22. Sử dụng sed để xóa tất cả các hàng đầu/khoảng trống sau đây trong một tập tin văn bản
- 23. SED thay thế khoảng trống với NULL
- 24. Xóa tất cả khoảng trắng trong một tệp và thay thế chúng bằng dấu phẩy bằng cách sử dụng Vim
- 25. Làm cách nào để xóa tất cả các khoảng thời gian?
- 26. khoảng cách giữa các khoảng trống imagettftext
- 27. Làm thế nào để loại bỏ tất cả các ký tự trống trong một chuỗi trong Erlang?
- 28. Regex thay thế tất cả dấu phẩy bằng giá trị
- 29. Trong Eclipse, làm cách nào các khoảng trống có thể hoạt động như các tab?
- 30. Làm thế nào để loại bỏ tất cả các khoảng trắng từ đầu hoặc cuối chuỗi?
tiêu đề câu hỏi này không phù hợp với câu hỏi. Để thay thế tất cả các khoảng trống bằng% 20 (tiêu đề) trong C#, bạn có thể sử dụng 'String.Replace (" ","% 20 ")'. Nếu bạn đang xây dựng một URL, tất cả những gì bạn cần làm là đặt một giá trị URL vào một chuỗi: 'string url =" https: // site/app /? Q = cats "' Nhưng nếu OP đang nói về việc chuyển một URL như là một GET tham số như một phần của một URL khác hoàn toàn khác, khác với, nói, phát ra một URL vào một thẻ neo HTML trong ASP.NET (hoặc bất kỳ thứ gì). – nothingisnecessary