Co stanie się, gdy nie podamy <meta charset="utf-8">
? w HEAD dokumentu HTML?Co stanie się, gdy nie podamy <meta charset = "utf-8">?
Odpowiedz
Niezależnie od tego, czy taki znacznik meta
jest obecny czy nie, przeglądarki i programy klienckie najpierw sprawdzą nagłówki HTTP, aby znaleźć tam informacje o kodowaniu. W rzeczywistości, będą jeszcze przed tymi ustawieniami użytkownika honoru i wykonają podsłuchy BOM, jak opisano w sekcji 8.2.2.1 Determining the character encoding w HTML5 CR - w tym numerze jest opis rzeczywistości, a nie tylko proponowanej normy.
Tak więc odpowiedź jest naprawdę "to zależy". W wielu przypadkach znacznik meta
jest ignorowany, więc pominięcie go nie ma żadnego efektu, z wyjątkiem być może sytuacji, w których dokument HTML jest zapisywany lokalnie (tak, że nagłówki HTTP są tracone). W wielu innych przypadkach nie jest on ignorowany, ale jeśli zostanie pominięty, przeglądarki i tak będą wnioskować o prawidłowym kodowaniu. A w niektórych przypadkach, gdy tag jest jedyną rzeczą, która sprawia, że przeglądarka używa właściwego kodowania, pomijanie jej spowoduje błędną interpretację danych, zazwyczaj tak, że bajty są interpretowane w kodowaniu Windows-1252. To, co to ma znaczenie, zależy od rzeczywistej treści.
Co stanie się, gdy nie podamy
<meta charset="utf-8">
? w HEAD dokumentu HTML?
Środek użytkownik szuka nagłówka HTTP Content-Type odpowiedzi wysłanej z serwera:
Content-Type: text/html; charset=utf-8
A jeśli nagłówek Content-Type nie określa charset
zależnych od User Agent inna rzeczy mogą się zdarzyć. Niektóre programy użytkownika mogą próbować użyć heurystyki do sprawdzenia poprawnego zestawu znaków przez analizę niektórych bajtów ze strumienia odpowiedzi w poszukiwaniu znanych kodowań. A jeśli to się nie powiedzie, na twojej stronie internetowej może pojawić się kilka znaków zapytania lub dziwnych symboli w miejscu, w którym użyłeś znaków spoza zakresu ASCII.
- 1. Co się stanie, gdy uruchomię alarm dwukrotnie?
- 2. Co się stanie, gdy wygasa profil udostępniania?
- 3. Co stanie się, gdy odświeżymy stronę internetową?
- 4. Co się stanie, gdy wpiszesz nieprawidłowe hasło?
- 5. Co się stanie, gdy mistrz Kubernetes zawiedzie?
- 6. Co się stanie, gdy zadzwonię requestAnimationFrame wielokrotnie
- 7. Co stanie się, gdy logiczne nie będzie float?
- 8. Co się stanie, gdy skończy się kolumna z automatycznym inkrementowaniem?
- 9. Co się stanie, gdy uruchomi się program java?
- 10. Ustaw charset tag meta z JavaScript
- 11. Znaczniki meta wyjaśnione: http-equiv i charset
- 12. Co się stanie, gdy pojawi się przepełnienie timestampu (rowversion)?
- 13. Współbieżność Mysql: co się stanie, gdy zostanie wywołany zablokowany stolik?
- 14. Co się stanie, gdy pliki cookie zostaną wyłączone?
- 15. Co się stanie, gdy naruszona zostanie polityka Swinga dotycząca gwintowania?
- 16. Co stanie się, gdy konwertujesz podwójne (lub pływające) na ints?
- 17. Co stanie się, gdy użytkownik kliknie zbiór .NET (EXE)?
- 18. Co się stanie, gdy jądro delayed_work zostanie zmienione na
- 19. Android - Co się stanie, gdy wygaśnie klucz podpisu?
- 20. Co się stanie, gdy pula połączeń zostanie wyczerpana?
- 21. Co stanie się, gdy wątek .NET zgłasza wyjątek?
- 22. Co się stanie, gdy zostanie przypisany typ zawierający lambdę?
- 23. Co się stanie, gdy użytkownik naciśnie przycisk Zatrzymaj w przeglądarce?
- 24. Co się stanie, gdy ustawimy Xmx i Xms równy rozmiar?
- 25. Co stanie się, gdy przepełnienie dostawy RabbitMQ zostanie przekroczone?
- 26. Co stanie się z niezatwierdzoną transakcją, gdy połączenie zostanie zamknięte?
- 27. co się stanie, gdy plik cookie przekroczy maksymalny rozmiar?
- 28. Co się stanie, gdy edytuję skrypt w trakcie jego działania?
- 29. Co się stanie, gdy wpiszesz URL w przeglądarce?
- 30. Co stanie się, gdy funkcja rollback() nie powiedzie się dla transakcji w MySQL?
Ta odpowiedź jest nieco myląca, ponieważ nagłówek HTTP jest zawsze sprawdzany jako pierwszy. – user123444555621