Niektóre znaki nie mogą wchodzić w skład adresu URL (np. spacja) ani inne
znaki w adresie URL mają specjalne znaczenie. W formularzach HTML znak =
to
służy do oddzielania nazwy od wartości. Zwykła składnia identyfikatora URI używa kodowania adresów URL, aby rozwiązać ten problem, a formularze HTML wprowadzają dodatkowe zamiany, zamiast kodować wszystkie takie znaki za pomocą kodowania procentowego.
Na przykład spacje w ciągu są kodowane za pomocą znaku %20
lub zastępowane znakiem plusa (+
). Jeśli używasz znaku ukośnika (|
) jako separatora, pamiętaj, aby zakodować go jako %7C
. przecinek w ciągu powinien być zakodowany jako %2C
.
Zalecamy używanie zwykłych bibliotek tworzenia adresów URL na platformie do automatycznego kodowania adresów URL, aby mieć pewność, że adresy są prawidłowo kodowane na potrzeby platformy.
Tworzenie prawidłowego adresu URL
Może Ci się wydawać, że „prawidłowy”, Adres URL jest oczywisty, ale
To nie do końca tak. Adres URL wpisany na pasku adresu w
przeglądarka może na przykład zawierać znaki specjalne (np.
"上海+中國"
); przeglądarka musi wykonać wewnętrzne tłumaczenie
zmień kodowanie tych znaków przed przesłaniem.
Przy użyciu tego samego tokena każdy kod, który generuje lub akceptuje dane wejściowe UTF-8,
może traktować adresy URL ze znakami UTF-8 jako „prawidłowe”, ale wymagają tego również
przetłumaczyć te znaki przed wysłaniem ich na serwer WWW.
Ten proces nazywa się kodowaniem URL-a lub kodowaniem procentowym.
Znaki specjalne
Znaki specjalne trzeba przetłumaczyć, Wszystkie adresy URL muszą spełniać składnię określoną w tagu Strój Specyfikacja identyfikatora zasobu (URI). Oznacza to, że adresy URL może zawierać tylko specjalny podzbiór znaków ASCII: znany symbole alfanumeryczne i niektóre znaki zarezerwowane do użytku jako elementy sterujące znaków w adresach URL. Tabela zawiera podsumowanie tych znaków:
Do startu | znaków | Użycie adresu URL |
---|---|---|
Znaki alfanumeryczne | a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 | ciągi tekstowe, użycie schematu (http ), port (8080 ) itp. |
Niezarezerwowane | - _ . ~ | Teksty |
Zarezerwowane | ! * ' ( ) ; : @ & = + $ , / ? % # [ ] | znaki sterujące lub ciągi tekstowe; |
Tworząc prawidłowy adres URL, należy się upewnić, że zawiera on tylko znaki podane tabeli. Zgodność adresu URL w celu ogólnego korzystania z tego zestawu znaków prowadzi do dwóch problemów: pierwszego pominięcia i zastąpienia:
- Znaki, które chcesz obsługiwać, znajdują się poza zestawem znaków wymienionych powyżej. Na przykład znaki obcych języków, takie jak
上海+中國
, muszą być zakodowane za pomocą znaków wymienionych powyżej. Zgodnie z popularną konwencją spacje (które są niedozwolone w adresach URL) są często reprezentowane za pomocą znaku plusa'+'
. - Znaki w powyższym zestawie są znakami zarezerwowanymi,
ale muszą być używane dosłownie.
Na przykład
?
jest używany w adresach URL do oznaczania początku ciągu zapytania, jeśli chcesz użyć „? i Tajemnice” musisz zakodować'?'
znak.
Wszystkie znaki, które mają być zakodowane w formacie URL, są kodowane za pomocą znaku '%'
i 2-znakowej wartości szesnastkowej odpowiadającej ich znakowi UTF-8. Na przykład
上海+中國
w UTF-8 zostanie zakodowane w formacie adresu URL jako
%E4%B8%8A%E6%B5%B7%2B%E4%B8%AD%E5%9C%8B
. Ciąg tekstowy ? and the Mysterians
zostanie zakodowany w formacie URL jako %3F+and+the+Mysterians
lub %3F%20and%20the%20Mysterians
.
Typowe znaki wymagające kodowania
Oto kilka typowych znaków, które muszą być zakodowane:
Niebezpieczna postać | Zakodowana wartość |
---|---|
Spacja | %20 |
” | %22 |
< | %3C |
> | %3E |
# | %23 |
% | %25 |
| | %7C |
Konwersja adresu URL otrzymanego z danych wejściowych użytkownika jest czasami podchwytliwe. Na przykład użytkownik może wprowadzić adres jako „ul. Główna” Ogólnie URL trzeba utworzyć z jego części, traktując w postaci znaków wpisywanych przez użytkownika.
Dodatkowo w przypadku wszystkich usług internetowych i interfejsów API Google Maps Platform ograniczenie długości adresów URL wynosi 16 384 znaki. W większości usług limit znaków będzie rzadko osiągany. Pamiętaj jednak: pamiętaj, że niektóre usługi mają kilka parametrów, które mogą powodować generowanie długich adresów URL.