Dalam rangka untuk menentukan charset untuk HTML5 Doctype, notasi yang harus saya gunakan?
Kedua bentuk meta charset pernyataan yang setara dan harus bekerja sama di browser. Tapi, ada beberapa hal yang perlu anda ingat ketika mendeklarasikan file-file web anda set karakter sebagai UTF-8:
Apache server dikonfigurasi untuk melayani file dalam ISO-8859-1 secara default, jadi anda perlu menambahkan baris berikut ini untuk anda .htaccess
:
AddDefaultCharset UTF-8
Ini akan mengkonfigurasi Apache untuk melayani file anda menyatakan UTF-8 encoding dalam Content-Type header respon, tapi file anda must akan disimpan dalam UTF-8 (tanpa BOM) untuk mulai dengan.
Notepad tidak dapat menyimpan file anda dalam UTF-8 tanpa BOM. Editor gratis yang dapat Notepad++. Pada program menu bar, pilih "Encoding > Enkode UTF-8 tanpa BOM". Anda juga dapat membuka file dan kembali menyimpannya dalam UTF-8 menggunakan "Encoding > Mengkonversi ke UTF-8 tanpa BOM".
Lebih lanjut di Byte Order Mark (BOM) di Wikipedia.
Alasan lain untuk pergi dengan singkat satu adalah bahwa itu sesuai kasus lain di mana anda mungkin menentukan set karakter di markup. Misalnya:
<script type="javascript" charset="UTF-8" src="/script.js"></script>
<p><a charset="UTF-8" href="http://example.com/">Example Site</a></p>
Konsistensi membantu untuk mengurangi kesalahan dan membuat code lebih mudah dibaca.
Perhatikan bahwa atribut charset adalah case-sensitive. Anda dapat menggunakan UTF-8 utf-8, namun UTF-8 lebih jelas, lebih mudah dibaca, lebih akurat.
Juga, sama sekali tidak ada alasan sama sekali untuk menggunakan nilai lain dari UTF-8 dalam meta charset atribut atau header halaman. UTF-8 encoding default untuk dokumen Web sejak HTML4, pada tahun 1999 dan satu-satunya cara praktis untuk membuat modern halaman Web.
Anda juga tidak harus menggunakan entitas HTML dalam UTF-8. Karakter seperti simbol hak cipta harus diketik secara langsung. Satu-satunya entitas yang harus anda gunakan untuk 5 reserved markup karakter: kurang dari, lebih besar dari, ampersand, perdana, ganda perdana. Entitas perlu HTML parser, yang anda mungkin tidak selalu ingin menggunakan ke depan, mereka memperkenalkan kesalahan, membuat kode anda lebih mudah dibaca, meningkatkan ukuran file, dan kadang-kadang decode salah di berbagai browser tergantung pada entitas mana yang anda gunakan. Belajar bagaimana untuk mengetik/memasukkan hak cipta, merek dagang, buka kutipan, kutipan dekat, apostrof, tanda pisah em, en dash, peluru, Euro, dan lain karakter yang anda temui dalam konten anda, dan menggunakan mereka sebenarnya karakter dalam kode anda. Mac memiliki Karakter Viewer yang dapat anda nyalakan pada Keyboard Preferensi Sistem, dan anda dapat menemukan dan kemudian drag dan drop karakter yang anda butuhkan, atau gunakan pencocokan Keyboard Viewer untuk melihat mana kunci untuk mengetik. Misalnya, merek dagang adalah Pilihan+2. UTF-8 berisi semua karakter dan simbol-simbol dari setiap yang ditulis dalam bahasa manusia. Jadi tidak ada alasan untuk menggunakan -- bukan em dash. Itu adalah bukan ide yang buruk untuk mempelajari aturan tanda baca dan tipografi juga ... misalnya, mengetahui bahwa periode berjalan dalam kutipan dekat, bukan di luar.
Menggunakan <meta> tag untuk sesuatu seperti content-type dan encoding adalah sangat ironis, karena tanpa mengetahui hal-hal tersebut, anda tidak't mengurai file untuk mendapatkan nilai meta tag.
Tidak, itu tidak benar. Browser dimulai parsing file sebagai browser's pengkodean default, baik UTF-8 atau ISO-8859-1. Sejak US-ASCII adalah subset dari kedua ISO-8859-1 dan UTF-8, browser dapat membaca
baik dengan cara baik ... itu adalah sama. Ketika browser menemukan meta tag charset, jika encoding yang berbeda dari apa yang browser sudah menggunakan, browser memuat halaman yang di tentukan encoding. Itu sebabnya kami menempatkan meta tag charset di bagian atas, tepat setelah tag head, sebelum apa-apa lagi, bahkan judul. Dengan cara itu anda dapat menggunakan UTF-8 karakter judul anda.Anda harus menyimpan file(s) dalam encoding UTF-8 tanpa BOM
Itu tidak sepenuhnya benar. Jika anda hanya memiliki US-ASCII karakter dalam dokumen anda, anda dapat Menyimpannya sebagai US-ASCII dan melayani sebagai UTF-8, karena itu adalah subset. Tapi jika ada karakter Unicode, anda benar, anda harus Menyimpan sebagai UTF-8 tanpa BOM.
Jika anda ingin sebuah teks editor yang akan menyimpan file anda dalam UTF-8, saya sarankan Notepad++.
Pada Mac, gunakan Tulang Telanjang TextWrangler (gratis) dari Mac App Store, atau Tulang Telanjang BBEdit yang di Mac App Store seharga $39.99 ... sangat murah untuk alat yang hebat. Dalam aplikasi, ada menu di bagian bawah jendela dokumen di mana anda menentukan dokumen encoding dan anda dapat dengan mudah memilih "UTF-8 tanpa BOM". Dan tentu saja anda dapat mengatur bahwa sebagai default untuk dokumen baru dalam Preferensi.
Tetapi jika Webserver anda menyajikan pengkodean header HTTP, yang direkomendasikan, baik [meta tag] yang perlu.
Itu adalah salah. Tentu saja anda harus mengatur pengkodean di HTTP header, tapi anda juga harus mengatur itu di meta charset atribut agar halaman dapat Disimpan oleh pengguna, keluar dari browser ke penyimpanan lokal, dan kemudian Dibuka lagi nanti, dalam hal ini satu-satunya indikasi dari pengkodean yang akan hadir adalah meta charset atribut. Anda juga harus menetapkan dasar tag untuk alasan yang sama ... pada server, basis tag yang tidak perlu, tapi ketika dibuka dari penyimpanan lokal, basis tag memungkinkan halaman untuk bekerja seolah-olah itu adalah pada server, dengan semua aset di tempat dan sebagainya, tidak ada link yang rusak.
AddDefaultCharset UTF-8
Atau anda hanya dapat mengubah pengkodean jenis file tertentu seperti:
AddType text/html;charset=utf-8 html
Tip untuk melayani kedua UTF-8 dan Latin-1 (ISO-8859-1) file ini adalah untuk memberikan UTF-8 file "text" ekstensi dan Latin-1 file "txt."
AddType text/plain;charset=iso-8859-1 txt
AddType text/plain;charset=utf-8 text
Akhirnya, pertimbangkan untuk Menyimpan dokumen anda dengan Unix akhir baris, bukan warisan DOS atau (klasik) Mac akhir baris, yang don't membantu dan mungkin sakit, terutama di bawah garis seperti yang kita mendapatkan lebih dan lebih dari orang-orang yang sistem warisan. Dokumen HTML dengan valid HTML5, UTF-8 encoding, dan Unix akhir baris adalah pekerjaan yang dilakukan dengan baik. Anda dapat berbagi dan mengedit serta menyimpan dan membaca dan memulihkan dan bergantung pada dokumen yang dalam banyak konteks. It's lingua franca. It's kertas digital.
<meta charset="utf-8">
diperkenalkan dengan/untuk HTML5.
Seperti yang disebutkan dalam dokumentasi, keduanya adalah valid. Namun, <meta charset="utf-8">
hanya untuk HTML5 (dan lebih mudah untuk mengetik/ingat).
Di waktu yang tepat, gaya lama terikat untuk menjadi usang dalam waktu dekat. I'a stick baru <meta charset="utf-8">
.
Ada's hanya salah satu cara, tetapi sampai. Di tech's kasus, yang's phasing out tua (benar-benar, benar-BENAR cepat)
Dokumentasi: HTML meta charset Atribut—W3Schools
Sementara tidak bertarung jawaban yang lain, saya pikir berikut adalah layak disebutkan.
http-equiv
) notasi dan "pendek" satu sama, mana yang lebih dulu berhasil merebut;<meta>
kategori;Anda dapat menguji dengan menjalankan echo 'HTTP/1.1 200 OK\r\nContent-type: text/html; charset=windows-1251\r\n\r\n\xef\xbb\xbf<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta charset="windows-1251"><title>привет</title></head><body>привет</body></html>' | nc -lp 4500
dan menunjuk browser anda di localhost:4500
. (Tentu saja anda akan ingin mengubah atau menghapus bagian-bagian. BOM bagian \xef\xbb\xbf
. Waspada terhadap pengkodean dari shell anda.)
Mohon diingat bahwa itu's sangat penting bahwa anda secara eksplisit menyatakan encoding. Membiarkan browser kira dapat menyebabkan masalah keamanan.
Gunakan <meta charset="utf-8" />
untuk web browser ketika menggunakan HTML5.
Gunakan <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
ketika menggunakan HTML4 atau XHTML, atau usang dom parser, seperti DOMDocument
di php 5.3
Untuk cantumkan tanda tangan pada email, saya akan menggunakan versi lama:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Alasannya adalah bahwa tidak banyak pembaca email menggunakan html5, sehingga's selalu lebih baik digunakan tua html styles. Sebenarnya, it's baik untuk menggunakan tabel dari-div + css juga.