Tôi nhận được yêu cầu từ khách hàng rằng anh ấy muốn có thể nhập chuỗi truy vấn của dịch vụ web của tôi với thông số trong thanh địa chỉ IE10 và nhận kết quả dịch vụ. Các thông số bao gồm chuỗi bằng tiếng Hebrew, như:mã hóa tham số chuỗi truy vấn trong IE10
http://mywebsite.com/service.asmx/foo?param1=123¶m2=מחרוזתבעברית
Có vẻ với tôi rằng IE10 rằng, không giống như các trình duyệt khác (bình thường), sẽ không mã hóa các thông số chuỗi truy vấn - mỗi nhân vật phi ansi mà đi sau? đánh dấu sẽ được chuyển sang '3f' byte, mặc dù nó mã hóa những gì đi trước khi? đánh dấu - chính url đó.
Ví dụ, nếu tôi cố gắng để đạt được url (tham số là tưởng tượng, url không phải là, và tôi không có mối liên hệ với trang web)
http://www.shlomo.co.il/pageshe/sales/רכב-למכירה.asp?param=פאראם
và tìm kiếm trong Wireshark cho các byte mà tôi gửi cho máy chủ, nó cho thấy tôi
Bạn có thể thấy nó thay thế phần hebrew của URL với chuỗi urlencoded, nhưng thay thế các thông số hebrew với ?????, đó là '3F của.
Chuỗi cùng trong chrome sẽ được mã hóa trong đó là toàn bộ:
GET http://www.shlomo.co.il/pageshe/sales/%D7%A8%D7%9B%D7%91-%D7%9C%D7%9E%D7%9B%D7%99%D7%A8%D7%94.asp?param=%D7%A4%D7%90%D7%A8%D7%90%D7%9D HTTP/1.1
Tôi đã thử nó trên máy với win7/IE10 và winXPheb/IE8.
thiết lậpMy IE được (đặc biệt là kiểm tra "tùy chọn địa chỉ luôn hiển thị mã hóa" để xem nếu nó giúp và khởi động lại, nhưng đã có sự khác biệt):
Tôi cố gắng để tìm kiếm xung quanh cho bất kỳ thông tin về vấn đề này, nhưng không tìm thấy nhiều.
Câu hỏi của tôi là:
- là nó thực sự như thế này, hay tôi thiếu cái gì?
- Hành vi này có được ghi lại ở bất kỳ đâu không?
- Có bất kỳ cài đặt nào trong IE/Win cho phép mã hóa tham số hay không.
p.s. Chắc chắn nếu tôi phát triển client/web ui, tôi chỉ đơn giản là urlencode truy vấn của tôi, nhưng yêu cầu của tôi từ khách hàng chính xác là dán truy vấn vào thanh địa chỉ của IE, đó là lý do tại sao tôi quan tâm đến hành vi cụ thể này.
Cảm ơn.
Đã chỉnh sửa câu hỏi cho phù hợp. Đã cho tôi thời gian để khởi động lại, nếu không tôi sẽ đánh dấu câu trả lời của bạn sớm hơn :) – alex440
Câu hỏi hay và câu trả lời ở đây, mặc dù tôi đã thử IE 10 của Trình duyệt Stack và kiểm tra "Gửi URL UTF-8" đã xuất hiện để khắc phục sự cố. Tự hỏi liệu nó có đúng không? –