Mengatur header HTTP untuk UTF-8 menggunakan PHP
Saya punya beberapa PHP halaman bergema berbagai hal yang menjadi HTML halaman dengan kode berikut.
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
Namun, ketika saya memvalidasi menggunakan W3C validator ia datang dengan:
pengkodean karakter yang ditentukan dalam header HTTP (iso-8859-1) berbeda dari nilai yang di <meta> elemen (utf-8).
Saya sangat baru untuk PHP, dan aku bertanya-tanya jika saya bisa dan harus mengubah header untuk file PHP untuk mencocokkan file HTML.
304
6
Gunakan
header
untuk memodifikasi header HTTP:Catatan untuk memanggil fungsi ini sebelum output telah dikirim ke klien. Jika header sudah dikirim juga dan anda jelas tidak bisa mengubahnya lagi. Anda dapat memeriksa bahwa dengan
headers_sent
. Lihat halaman manual dariheader
untuk informasi lebih lanjut.Pertama pastikan file PHP sendiri UTF-8 dikodekan.
Meta tag ini diabaikan oleh beberapa browser. Jika anda hanya menggunakan ASCII-karakter, itu doesn't peduli pula.
http://en.wikipedia.org/wiki/List_of_HTTP_header_fields
Ini adalah masalah dengan web server mengirimkan HTTP header yang tidak sesuai dengan yang anda tentukan. Untuk petunjuk tentang cara untuk membuat server mengirim header yang benar, lihat halaman ini.
Jika tidak, anda juga dapat menggunakan PHP untuk memodifikasi header, tapi ini harus dilakukan before keluaran teks menggunakan kode ini:
Informasi lebih lanjut tentang cara mengirimkan header menggunakan PHP dapat ditemukan di dokumentasi untuk fungsi header.
Anda juga dapat menggunakan cara yang lebih pendek:
Lihat RFC 2616. It's yang valid untuk menentukan hanya set karakter.
Untuk implementasi yang benar, anda perlu untuk mengubah serangkaian hal.
Database (segera setelah koneksi):
PHP mengirimkan header secara otomatis jika diatur untuk penggunaan internal encoding: