html5
  • character-encoding
  • 2012-09-13 9 views 15 likes 
    15

    Przykładowy dokument HTML pobierane przez HTTP brakuje:Czy HTML5 określa domyślne kodowanie znaków dla dokumentów HTML, jeśli nie podano kodowania znaków?

    • HTTP Content-Type nagłówek
    • html <meta charset="<character encoding>" />
    • html <meta http-equiv='Content-Type' content='Type=text/html; charset=<character encoding>'>

    W odniesieniu do HTML5, to domyślne, na przykład UTF-8, zakładany jako kodowanie znaków? Czy jest to całkowicie w górę aplikacji czytanie dokumentu HTML, aby wybrać domyślny?

    Odpowiedz

    14

    charset jest określana za pomocą tych zasad: nadpisanie

    1. użytkownika.
    2. Parametr "zestawu znaków" HTTP w polu "Content-Type".
    3. Oznaczenie kolejności bajtów przed innymi danymi w samym dokumencie HTML.
    4. Deklaracja META z atrybutem "charset".
    5. Deklaracja META z atrybutem "http-equiv" ustawionym na "Content-Type" i wartością ustawioną dla "charset".
    6. Nieokreślona analiza heurystyczna.

    ... a potem ...

    1. znormalizować dany ciąg kodowania znaków według charset Alias ​​Dopasowane zasad określonych w Unicode standard techniczny # 22.
    2. Pomijanie niektórych problematycznych kodowań, tj. Celowe traktowanie niektórych kodowań tak, jakby były one różnymi kodowaniami. Najczęstszym nadpisaniem jest traktowanie US-ASCII i ISO-8859-1 jako Windows-1252, ale w tej tabeli wymieniono kilka innych nadpisań kodowania. Jak podaje specyfikacja, "wymóg traktowania pewnych kodowań jako innych kodowań zgodnie z powyższą tabelą jest świadomym naruszeniem specyfikacji modelu znaków W3C".

    Ale najważniejszą rzeczą jest:

    Należy zawsze określić kodowanie znaków na każdy dokument HTML lub złe rzeczy się wydarzy. Możesz to zrobić w trudny sposób (nagłówek treści treści HTTP), w łatwy sposób (deklaracja <meta http-equiv>) lub w nowy sposób (atrybut <meta charset>), ale zrób to. Sieć dziękuje.

    Źródła:

    +0

    Dzięki, doceniam, że kodowanie znaków powinno być zawsze określona.Sprawdzam dokumenty, nad którymi nie mam kontroli i muszę wiedzieć, czy powrócić do domyślnego kodowania, jeśli nie zostało określone. –

    +1

    Rozważ użycie tej samej logiki, której używa walidator W3. To jest open source, więc możesz po prostu spojrzeć na jego kod, aby zobaczyć, co robi. – ThiefMaster

    +1

    To tak naprawdę nie odpowiada na pytanie, dlaczego zestaw znaków jest potrzebny i jaki jest domyślny zestaw, który jest tak zły. Czy nadal jest to odpowiedź? Od tego czasu minęły 2 lata, a od tego czasu znacznie zmodernizowano przeglądarki. IE nie, ale starsze wersje odpadły. – trysis

    Powiązane problemy