Mai mult
Set HTTP antet pentru UTF-8 folosind PHP
Am mai multe PHP pagini ecou diverse lucruri în HTML pagini cu următorul cod.
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
Cu toate acestea, atunci când am valida folosind W3C validator acesta este dotat cu:
codificarea caracterelor specificată în antet HTTP (iso-8859-1) este diferit de valoarea în <meta> element (utf-8).
Eu sunt destul de nou pentru PHP, și mă întrebam dacă am putea și ar trebui să modificați antetul pentru fișierele PHP pentru a se potrivi fișierele HTML.
304
6
Folosi
antet
pentru a modifica antetul HTTP:Notă pentru a apela această funcție înainte de orice ieșire a fost trimis la client. În caz contrar antet a fost trimis prea evident, nu poate schimba asta. Puteți verifica asta cu
headers_sent
. Vezi manual pagina deantet
pentru mai multe informații.În primul rând asigurați-vă că fișierele PHP înșiși sunt UTF-8 codificate.
Meta-tag-ul este ignorat de unele browser-ul. Dacă utilizați numai ASCII caractere, nu't contează oricum.
http://en.wikipedia.org/wiki/List_of_HTTP_header_fields
Aceasta este o problemă cu serverul web trimite un antet HTTP care nu se potrivește cu cea pe care o definiți. Pentru instrucțiuni privind modul de a face serverul trimite corecte cap, a se vedea această pagină.
În caz contrar, puteți utiliza, de asemenea, PHP pentru a modifica antetele, dar acest lucru trebuie să fie făcut before scoate orice text folosind acest cod:
Mai multe informații cu privire la modul de a trimite antete folosind PHP pot fi găsite în documentația pentru funcția header]2.
Puteți folosi, de asemenea, o cale mai scurtă:
A se vedea RFC 2616. L's valabile pentru a specifica doar set de caractere.
Pentru o aplicare corectă, aveți nevoie pentru a schimba o serie de lucruri.
Baza de date (imediat după conectare):
PHP trimite anteturile automat dacă setați pentru a utiliza codarea internă: