Czy prawidłowy kod HTML używa identyfikatorów IRI zawierających znaki spoza ASCII jako wartości atrybutów (np. Dla atrybutów href
) zamiast identyfikatorów URI? Czy są jakieś różnice między smakami HTML (HTML i XHTML, 4 i 5)? Co najmniej RFC 3986 wydaje się sugerować, że tak nie jest.Czy identyfikatory IRI są prawidłowe jako wartości atrybutów HTML?
Zdaję sobie sprawę, że prawdopodobnie będzie bezpieczniejsze (w przypadku starszych i nieświadomych oprogramowania IRI) stosowanie kodowania procentowego, ale szukam ostatecznej odpowiedzi w odniesieniu do standardu.
Do tej pory zrobiłem kilka testów z W3C validator, a nieodwzorowane znaki Unicode w identyfikatorach URI nie wyzwalają żadnych ostrzeżeń ani błędów z dokumentami typu 4/5 i XHTML 4/5 (ale oczywiście brak błędu wiadomości nie oznacza braku błędów).
Co najmniej chrome obsługuje również surowe IRI UTF-8, ale procent-ucieka je przed wystrzeleniem żądania HTTP. Również mój serwer WWW (lighttpd) wydaje się obsługiwać znaki UTF-8 w ich procencie zakodowanym, jak również w postaci nieskodowanej w żądaniu HTTP.
Uwaga: [Sekcja 1.2 dokumentu RFC 3987] (http://tools.ietf.org/html/rfc3987#section-1.2) wspomina o tym, że HTTP zdefiniowano w [RFC 2616] (http: //tools.ietf. org/html/rfc2616) robi ** NOT ** wspiera IRIs, więc obsługa ich jest poza standardem. Ty (lub twoja przeglądarka lub ktoś) musisz najpierw odwzorować dany IRI na URI, zanim spróbujesz odzyskać przywoływany zasób. – Oliver
możliwy duplikat [znaków Unicode w adresach URL] (http://stackoverflow.com/questions/2742852/unicode-characters-in-urls) –