Mam kilka stron PHP odbijających różne rzeczy na stronach HTML z następującym kodem.
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
Jednak gdy sprawdzam poprawność za pomocą walidatora W3C , pojawia się:
Kodowanie znaków określone w nagłówku HTTP (iso-8859-1) różni się od wartości w elemencie (utf-8).
Jestem całkiem nowy w PHP i zastanawiałem się, czy mogę i powinienem zmienić nagłówek plików PHP, aby pasował do plików HTML.
php
html
http-headers
manycheese
źródło
źródło
<meta>
tagu.META
jest używany, gdy dokument HTML nie jest ładowany przez HTTP (np. Z dysku).Najpierw upewnij się, że same pliki PHP są zakodowane w UTF-8 .
Meta tag jest ignorowany przez niektóre przeglądarki. Jeśli używasz tylko znaków ASCII, to i tak nie ma znaczenia.
http://en.wikipedia.org/wiki/List_of_HTTP_header_fields
źródło
Jest to problem z tym, że serwer WWW wysyła nagłówek HTTP, który nie jest zgodny z tym, który zdefiniowałeś. Aby uzyskać instrukcje, jak zmusić serwer do wysyłania poprawnych nagłówków, zobacz tę stronę .
W przeciwnym razie możesz także użyć PHP do modyfikacji nagłówków, ale należy to zrobić przed wypisaniem dowolnego tekstu za pomocą tego kodu:
Więcej informacji na temat wysyłania nagłówków za pomocą PHP można znaleźć w dokumentacji funkcji nagłówka .
źródło
Możesz także użyć krótszego sposobu:
Zobacz RFC 2616 . Można podać tylko zestaw znaków.
źródło
Content-Type = "Content-Type" ":" media-type
imedia-type = type "/" subtype *( ";" parameter )
Aby uzyskać poprawną implementację, musisz zmienić szereg rzeczy.
Baza danych (bezpośrednio po połączeniu):
źródło
PHP automatycznie wysyła nagłówki, jeśli jest skonfigurowane do korzystania z wewnętrznego kodowania:
źródło