RFC 3986 göre aşağıdaki karakterler saklıdır ve yüzde olarak kodlanmış onların ayrılmış kullanımları olarak daha URI diğer kullanılmak üzere olması gerekiyor gibidir: :/?#[]@!$&'()*+,;=
Şimdiyse, eğer {ve} gibi karakterler (kaşlı ayraçlar) URL'lerde yüzde olarak kodlanmışsa?
Dahası özellikle ayrılmamış bazı karakterleri belirtir: a-zA-Z0-9\-._~
o (yanlış anlamaya meydan vermeyecek) ve (okunabilmesi için) ayrılmamış karakterleri kodlamak değil genellikle bir ayrılmış karakterler kodlamak gerektiği açıkça görünüyor, ama nasıl her iki kategoriye girmeyen karakterler ele alınmalıdır? Örneğin {
ve }
her iki listede görünmez, ancak standart ASCII karakterleridir.
Rehberlik için modern tarayıcılara bakmak bazen farklı davranışlara sahip gibi görünüyor. Örneğin, bir web tarayıcısının adres çubuğuna URL https://www.google.com/search?q={
yapıştırarak düşünün:
- Krom 34.0.1847.116 m bunu değiştirmez.
- Firefox 28.0 onu değiştirmez.
- Internet Explorer 9.0 bunu değiştirmez. bir macunlar
https://www.google.com/#q={
(sorgu dizesi yerine parça/karma karakteri parçası haline, "arama" kaldırılması ve bir#
için?
değişen eğer - Safari 5.1.7,
https://www.google.com/search?q=%7B
Ancak
dönüştürürler
- Krom 34.0.1847.116 m (
- Firefox 28.0 bunu değiştirmez) JavaScript aracılığıyla
https://www.google.com/#q=%7B
dönüştürürler:) biz görüyoruz. - Internet Explorer 9.0 bunu değiştirmez. Zaman uyumsuz isteği gerçekleştirmek için JavaScript kullanıldığında
- Safari 5.1.7 URL yüzde değil (yani this MDN example
?q={
bir URL kullanmak için modifiye kullanılarak), Ayrıca (JavaScript çalıştırmadan önce)https://www.google.com/#q=%7B
için
değiştirir otomatik olarak kodlanmış. (XMLHttpRequest API URL'si önceden/kodlanmış öncelenmelidir varsayar çünkü tahmin ediyorum.)
I (tuhaf bir müşteri ihtiyacına ilişkin bir nedenden dolayı) dosya adı kısmında {
ve }
kullanmak istiyorum (1) şeyleri kırmadan ve ideal olarak da içermeyen URL'ler (2) modern tarayıcıların web denetleyicileri/hata ayıklayıcılarının ağ panelinde çirkin görünüşlü kodlanmış girişler oluşturma.
Hmm, RFC3986'dan bir yanıt almayı umuyorum, çünkü bunun RFC2396'yı hızlandırması gerekiyordu, ama cevabınızı takdir ediyorum. Ek D, 'Karakterler üzerinde 2. Bölüm, hangi karakterlerin rezerve edildiğini, ne zaman ayrıldıklarını ve niçin ayrıldıklarını açıklamak için yeniden yazılmıştır, genel sözdizimi ile sınırlayıcı olarak kullanılmadıklarında bile… ve ben İronik olarak, benim için belirsizliğe neden olan yeniden yazma olduğunu tahmin et. – iX3