Trong một dự án gần đây, tôi đã có niềm vui khi khắc phục sự cố một lỗi liên quan đến hình ảnh không tải khi không gian nằm trong tên tệp. Tôi nghĩ "Thật là một vấn đề đơn giản, tôi sẽ UrlEncode()
nó!" Nhưng, NAY! Chỉ cần sử dụng UrlEncode()
không giải quyết được sự cố.Trong ASP.NET, tại sao có UrlEncode() AND UrlPathEncode()?
Các vấn đề mới là phương pháp HttpUtilities.UrlEncode()
chuyển không gian () để plusses (
+
) thay của %20
như trình duyệt muốn. Vì vậy, file+image+name.jpg
sẽ không trả lại trong khi file%20image%20name.jpg
được tìm thấy chính xác.
Rất may, đồng nghiệp đã chỉ ra HttpUtilities.UrlPathEncode()
cho tôi sử dụng %20
cho không gian thay vì +
.
TẠI SAO có hai cách xử lý mã hóa Url? TẠI SAO có hai lệnh hoạt động khác nhau?
Xem http://stackoverflow.com/questions/602642/server-urlencode-vs-httputility-urlencode/603962#603962 để có giải pháp tốt hơn. –
Có thể trùng lặp: http://stackoverflow.com/q/4145823/2291 –
@Mufasa - mmm ... Tôi biết sự khác biệt. Tôi tự hỏi tại sao. – quakkels