Kodowanie adresów URL

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. Ogólna składnia identyfikatora URI używa kodowania adresów URL. w celu rozwiązania tego problemu, podczas gdy formularze HTML zawierają dodatkowe podstawienia zamiast stosować procentowe kodowanie wszystkich takich znaków.

Na przykład spacje w ciągu znaków są kodowane za pomocą identyfikatora %20 lub zastępowane ciągiem znak plusa (+). Jeśli jako separatora używasz pionowej kreski (|), upewnij się, zakodować pionową kreskę jako %7C. Przecinek w ciągu znaków powinien być zakodowany jako %2C.

Do tworzenia adresów URL zalecamy używanie zwykłych bibliotek do tworzenia adresów URL automatycznie kodować adresy URL, aby były wprowadzane ze zmianą znaczenia 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ę Kodowanie adresów URL lub kodowanie procentowe.

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:

Podsumowanie prawidłowych znaków adresu URL
UstawznakówUżycie adresu URL
Alfanumeryczne a b c d e f g h i j k l m n o p q r s t u v 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, wykorzystanie schematu (http), port (8080) itp.
Niezarezerwowane - _ . ~ Ciągi tekstowe
Zarezerwowane ! * ( ) ; : @ & = + $ , / ? % # [ ] Znaki kontrolne 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órymi chcesz się zajmować, znajdują się poza powyżej zestawu. Na przykład znaki w obcych językach takie jak 上海+中國, muszą być zakodowane za pomocą funkcji powyżej znaków. Zgodnie z powszechną konwencją pokoje (czyli niedozwolonych w adresach URL) są często przedstawiane za pomocą znaku plusa '+' znak.
  • Znaki w powyższym zestawie są dostępne jako znaki zarezerwowane. 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 do kodowania URL są zakodowane używając znaku '%' i dwuznakowego kodu szesnastkowego odpowiadającą jej znakowi UTF-8. Przykład: Kod 上海+中國 w UTF-8 byłby zakodowany jako URL %E4%B8%8A%E6%B5%B7%2B%E4%B8%AD%E5%9C%8B ciąg ? and the Mysterians byłby zakodowany w adresie URL jako %3F+and+the+Mysterians lub %3F%20and%20the%20Mysterians.

Typowe znaki, które wymagają 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.

Oprócz tego adresy URL we wszystkich usługach internetowych Google Maps Platform mogą mieć maksymalnie 16 384 znaki i statycznych sieciowych interfejsów API. 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ć długie adresy URL.