kaçış()
Kullanma!
escape()
bölüm B.2.1.2 kaçışında tanımlanmıştır ve Ek B'nin giriş metni şöyle diyor:
... Bu ekte belirtilen tüm dil özellikleri ve davranışları bir veya daha fazla istenmeyen özelliğe sahiptir ve eski kullanım yokluğunda bu spesifikasyondan kaldırılacaktır. ...
... Programcılar yeni ECMAScript kodu yazarken bu özellikleri ve davranışları kullanmamalı veya varlığını varsaymamalıdır ....
Davranış:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/escape
Özel karakterler aşağıdakiler hariç kodlanmıştır: @ * _ + -. /
Kod birim değer 0XFF ya da daha az olan karakterlerin, onaltılı bir şekilde, iki basamaklı bir kaçış dizisidir: %xx
.
Daha büyük kod birimine sahip karakterler için dört basamaklı biçim %uxxxx
kullanılır. Bir sorgu dizesinde buna izin verilmez ( RFC3986'da tanımlandığı gibi ):
query = *( pchar / "/" / "?" )
pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
pct-encoded = "%" HEXDIG HEXDIG
sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
/ "*" / "+" / "," / ";" / "="
Yüzde işaretine yalnızca doğrudan iki onaltılık izlenirse u
izin verilir , yüzde izine izin verilmez.
encodeURI ()
Çalışan bir URL istediğinizde encodeURI kullanın. Bu aramayı yapın:
encodeURI("http://www.example.org/a file with spaces.html")
almak:
http://www.example.org/a%20file%20with%20spaces.html
URL'yi yok edip geri döneceği için encodeURIComponent öğesini çağırma
http%3A%2F%2Fwww.example.org%2Fa%20file%20with%20spaces.html
encodeURIComponent ()
Bir URL parametresinin değerini kodlamak istediğinizde encodeURIComponent kullanın.
var p1 = encodeURIComponent("http://example.org/?a=12&b=55")
Ardından, ihtiyacınız olan URL'yi oluşturabilirsiniz:
var url = "http://example.net/?param1=" + p1 + "¶m2=99";
Ve bu tam URL'yi alacaksınız:
http://example.net/?param1=http%3A%2F%2Fexample.org%2F%Ffa%3D12%26b%3D55¶m2=99
EncodeURIComponent öğesinin '
karakterden kaçmadığını unutmayın . Yaygın bir hata, href='MyUrl'
bir enjeksiyon hatası çekebilecek gibi html nitelikleri oluşturmak için kullanmaktır . Dizelerden html oluşturuyorsanız öznitelik tırnakları "
yerine kullanın '
veya fazladan bir kodlama katmanı ekleyin ( '
% 27 olarak kodlanabilir).
Bu tür kodlama hakkında daha fazla bilgi için şunları kontrol edebilirsiniz: http://en.wikipedia.org/wiki/Percent-encoding
encodeURIComponent("var1=value1&var2=value2")
olduğunu değil , tipik kullanım şeklidir. Bu örnek=
ve&
muhtemelen kodlanmış olanı kodlayacaktır !encodeURIComponent
genellikle her bir anahtar / değer çiftindeki (her birinden sonraki kısım=
) değere ayrı ayrı uygulanır .