Czy jest jakieś prawidłowe użycie funkcji encodeURI javascript?powinno być kiedykolwiek używane encodeURI?
O ile mogę powiedzieć, kiedy staramy się żądanie HTTP ty powinien albo:
- kompletnym URI
- jakiś fragment chcesz umieścić w URI, który jest albo ciąg znaków Unicode lub kod bajtowy UTF-8
W pierwszym przypadku oczywiście nic nie trzeba robić, aby o to poprosić. Uwaga: jeśli rzeczywiście chcesz przekazać go jako parametr (np. Url = http ...), to masz instancję drugiego przypadku, który wygląda jak URI.
W drugim przypadku, należy zawsze przekonwertować ciąg Unicode na UTF-8, a następnie zadzwonić encodeURIComponent uciec wszystkie znaków przed dodaniem go do identyfikatora URI. (Jeśli masz sekwencję bajtów UTF-8 zamiast ciągu unicode, możesz pominąć krok convert-to-utf8).
Zakładając, że niczego nie przeoczyłem, nie widzę prawidłowego użycia dla encodeURI. Jeśli go używasz, prawdopodobnie skonstruowałeś nieprawidłowy identyfikator URI, a następnie próbujesz go "odkażić" po fakcie, który jest po prostu niemożliwy, ponieważ nie wiesz, które postacie były przeznaczone dosłownie, i które miały zostać usunięte .
Widziałem wiele porad dotyczących używania escape(), ale nie widzę nikogo zniechęcającego encodeURI. Czy brakuje ważnego zastosowania?
"Niektóre fragmenty, które chcesz umieścić w URI", jak sądzę, można nazwać "składnikiem URI". "W drugim przypadku zawsze powinieneś przekonwertować ciąg znaków Unicode na UTF-8" - nie w JavaScript. 'encodeURIComponent' automatycznie przekształci ciąg znaków w kodowanie UTF-8 (a' decodeURIComponent' skonwertuje oktety UTF-8 z powrotem na znaki Unicode). – mgiuca