Saya memiliki beberapa halaman PHP yang menggabungkan berbagai hal menjadi halaman HTML dengan kode berikut.
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
Namun, ketika saya memvalidasi menggunakan validator W3C muncul dengan:
Pengkodean karakter yang ditentukan dalam header HTTP (iso-8859-1) berbeda dari nilai dalam elemen (utf-8).
Saya cukup baru untuk PHP, dan saya bertanya-tanya apakah saya bisa dan harus mengubah header untuk file PHP agar sesuai dengan file HTML.
php
html
http-headers
manycheese
sumber
sumber
<meta>
tag sama sekali lagi.META
digunakan ketika dokumen HTML tidak dimuat melalui HTTP (misalnya dari disk).Pertama-tama pastikan file PHP itu sendiri dikodekan UTF-8 .
Tag meta diabaikan oleh beberapa browser. Jika Anda hanya menggunakan karakter ASCII, itu tidak masalah.
http://en.wikipedia.org/wiki/List_of_HTTP_header_fields
sumber
Ini adalah masalah dengan server web Anda mengirimkan header HTTP yang tidak cocok dengan yang Anda tentukan. Untuk instruksi tentang cara membuat server mengirim tajuk yang benar, lihat halaman ini .
Jika tidak, Anda juga dapat menggunakan PHP untuk memodifikasi tajuk, tetapi ini harus dilakukan sebelum mengeluarkan teks apa pun menggunakan kode ini:
Informasi lebih lanjut tentang cara mengirim header menggunakan PHP dapat ditemukan dalam dokumentasi untuk fungsi header .
sumber
Anda juga dapat menggunakan cara yang lebih pendek:
Lihat RFC 2616 . Ini valid untuk menentukan hanya set karakter.
sumber
Content-Type = "Content-Type" ":" media-type
danmedia-type = type "/" subtype *( ";" parameter )
Untuk implementasi yang benar, Anda perlu mengubah serangkaian hal.
Database (segera setelah koneksi):
sumber
PHP mengirimkan tajuk secara otomatis jika diatur untuk menggunakan penyandian internal:
sumber