2012-01-16 11 views
14

I have read Powinienem zakodować moje ampersandy jako & w HTML.
Jednak liczne próbki kodu od szanowanych firm jakoś zapomnij zrobić to.Dlaczego Twitter i dokumentacja API Google nie kodują ampersandów w adresach URL?

tylko kilka przykładów z góry na głowie:

Google Web Fonts przykładowy kod:

<link href='http://fonts.googleapis.com/css?family=PT+Sans&subset=latin,cyrillic' rel='stylesheet' type='text/css'> 

Google Maps dokumentacja:

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false&language=ja"> 

Twitter Anywhere oficjalny poradnik:

<script src="http://platform.twitter.com/anywhere.js?id=YOUR_API_KEY&v=1" type="text/javascript"></script> 

Czy istnieje jakaś realna korzyść z , a nie w postaci ucieczki w linkach?
Czy jest to związane z dziwactwami przeglądarki? Czy to tylko błąd w dokumentacji?

Drodzy Główni odpowiadający, proszę upewnić się, że odpowiedź na pytanie prawo.

Wiem, że powinien escape ampersands za spec. Wiem też, że mechanizm został wymyślony w pierwszej kolejności. Nie jestem asking about this. Moje pytanie brzmi:

Czy istnieje powód Dokumentacja API przez szacowne firmy często narusza tę zasadę?

+0

Odpowiedzi, proszę zauważyć, że nie robią tego, ponieważ są poprawne. Brak kodowania amperandów faktycznie narusza [specyfikację HTML 4.1, sekcja 5.3.2: Odwołania do jednostek znaków] (http://www.w3.org/TR/html401/charset.html#h-5.3.2): * Autorzy powinien użyć "&" (ASCII w liczbie 30) zamiast "&", aby uniknąć pomyłki z początkiem odwołania do znaku (ogranicznik otwartego odniesienia do encji). ** Autorzy powinni również użyć wartości "&" w wartościach atrybutów, ponieważ dozwolone są odwołania do znaków w wartościach atrybutów CDATA. *** –

+1

Dan, rozumiem, że masz już link do pytania na ten temat w swoim poście, ale obecni respondenci wydają się być pominięci to. –

+0

@Jeremy: dzięki za uwagę, zredagowałem pytanie. –

Odpowiedz

4

Czy istnieje jakaś realna korzyść wynikająca z braku ucieczki do ampersand w linkach?

Zapisuje kilka naciśnięć klawiszy.

Czy jest to związane z dziwactwami przeglądarki?

Nie

Czy to tylko pomyłka w dokumentacji?

Tak

Czy istnieje dokumentacja API powód przez szanowanych firm często narusza tę zasadę?

Niewiedza i/lub lenistwo. Przeglądarki wykonują odzyskiwanie po błędzie, aby albo nie zauważyły ​​błędów, albo ich nie obchodziły. Dokumentacja prawdopodobnie nie jest napisana przez najlepszych ekspertów.

5

Dwa różne konteksty tutaj.

  1. W kontekście javascript href, & jest w porządku i nie powinien być kodowany.
  2. W łączu HTML & jest zabronione i powinno zostać zmienione.

W kontekście połączenia HTML encja znaków HTML zostanie zdekodowana przed przekazaniem adresu do procesu HTTP; znak zakodowany przez URL nie będzie, ponieważ serwer może odczytać go bezpośrednio.

Powiązane problemy