Pertanyaan vs


Untuk mendefinisikan charset HTML5 Doctype, notasi mana yang harus saya gunakan?

  1. Pendek:

    <meta charset="utf-8" /> 
    
  2. Panjang:

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    

1387
2018-01-14 22:06


asal


Jawaban:


Di HTML5, mereka setara. Gunakan yang lebih pendek, lebih mudah diingat dan diketik. Dukungan browser baik-baik saja karena dirancang untuk kompatibilitas mundur.


978
2018-01-14 22:09



Kedua bentuk tersebut meta charset deklarasi adalah setara dan harus bekerja di seluruh browser yang sama. Namun, ada beberapa hal yang perlu Anda ingat ketika mendeklarasikan karakter file web Anda sebagai UTF-8:

  1. Simpan file Anda dalam pengkodean UTF-8 tanpa itu tanda byte-order (BOM).
  2. Deklarasikan pengkodean dalam file HTML Anda menggunakan meta charset (seperti di atas).
  3. Server web Anda harus melayani file Anda, mendeklarasikan pengkodean UTF-8 di header HTTP Content-Type.

Server Apache dikonfigurasi untuk melayani file dalam ISO-8859-1 secara default, jadi Anda perlu menambahkan baris berikut ke Anda .htaccess mengajukan:

AddDefaultCharset UTF-8

Ini akan mengonfigurasi Apache untuk melayani file Anda yang mendeklarasikan pengkodean UTF-8 di header respons Content-Type, tetapi file Anda harus disimpan dalam UTF-8 (tanpa BOM) untuk memulai.

Notepad tidak dapat menyimpan file Anda di UTF-8 tanpa BOM. Editor gratis yang bisa Notepad ++. Pada bilah menu program, pilih "Encoding> Encode di UTF-8 tanpa BOM". Anda juga dapat membuka file dan menyimpannya kembali di UTF-8 menggunakan "Encoding> Convert to UTF-8 tanpa BOM".

Lebih lanjut tentang Byte Order Mark (BOM) di Wikipedia.


236
2018-05-21 07:26



Alasan lain untuk pergi dengan yang pendek adalah bahwa hal itu cocok dengan contoh lain di mana Anda dapat menentukan satu set karakter dalam markup. Sebagai contoh:

<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 mengurangi kesalahan dan membuat kode lebih mudah dibaca.

Perhatikan bahwa atribut charset tidak peka huruf besar / kecil. Anda dapat menggunakan UTF-8 atau utf-8, namun UTF-8 lebih jelas, lebih mudah dibaca, lebih akurat.

Juga, sama sekali tidak ada alasan sama sekali untuk menggunakan nilai selain UTF-8 di atribut meta charset atau header halaman. UTF-8 adalah pengkodean standar untuk dokumen Web sejak HTML4 pada tahun 1999 dan satu-satunya cara praktis untuk membuat halaman Web modern.

Juga Anda tidak boleh menggunakan entitas HTML dalam UTF-8. Karakter seperti simbol hak cipta harus diketik secara langsung. Satu-satunya entitas yang harus Anda gunakan adalah untuk 5 karakter markup yang dicadangkan: kurang dari, lebih besar dari, ampersand, prime, double prime. Entitas memerlukan parser HTML, yang mungkin tidak selalu ingin digunakan untuk maju, mereka memperkenalkan kesalahan, membuat kode Anda lebih mudah dibaca, meningkatkan ukuran file Anda, dan kadang-kadang memecahkan kode dengan salah di berbagai browser tergantung pada entitas mana yang Anda gunakan. Pelajari cara mengetik / memasukkan hak cipta, merek dagang, kutipan terbuka, kutipan dekat, tanda kutip, tanda hubung, en dash, bullet, Euro, dan karakter lain apa pun yang Anda temui di konten Anda, dan gunakan karakter yang sebenarnya dalam kode Anda. Mac memiliki Penampil Karakter yang dapat Anda aktifkan di Preferensi Sistem Keyboard, dan Anda dapat menemukan dan kemudian seret dan lepas karakter yang Anda butuhkan, atau gunakan Penampil Keyboard yang cocok untuk melihat tombol mana yang harus diketik. Misalnya, merek dagang adalah Opsi + 2. UTF-8 berisi semua karakter dan simbol dari setiap bahasa manusia tertulis. Jadi tidak ada alasan untuk menggunakan - bukan em dash. Bukan ide yang buruk untuk mempelajari aturan tanda baca dan tipografi juga ... misalnya, mengetahui bahwa suatu periode masuk ke dalam kutipan dekat, bukan di luar.

Menggunakan tag untuk sesuatu seperti tipe konten dan penyandian sangat tinggi   ironis, karena tanpa mengetahui hal-hal itu, Anda tidak bisa mengurai file   untuk mendapatkan nilai dari tag meta.

Tidak, itu tidak benar. Browser memulai penguraian file sebagai pengkodean default browser, baik UTF-8 atau ISO-8859-1. Karena US-ASCII adalah bagian dari kedua ISO-8859-1 dan UTF-8, browser dapat membaca baik-baik saja ... itu sama. Ketika browser menemukan tag meta charset, jika pengkodean berbeda dari apa yang browser sudah menggunakan, browser memuat ulang halaman dalam pengkodean yang ditentukan. Itulah mengapa kami menempatkan meta tag charset di bagian atas, tepat setelah tag head, sebelum yang lain, bahkan judul. Dengan begitu Anda dapat menggunakan karakter UTF-8 dalam judul Anda.

Anda harus menyimpan file Anda dalam pengkodean UTF-8 tanpa BOM

Itu tidak sepenuhnya benar. Jika Anda hanya memiliki karakter US-ASCII dalam dokumen Anda, Anda dapat Menyimpannya sebagai US-ASCII dan melayani sebagai UTF-8, karena itu adalah bagian. Tetapi jika ada karakter Unicode, Anda benar, Anda harus Simpan sebagai UTF-8 tanpa BOM.

Jika Anda menginginkan editor teks yang bagus yang akan menyimpan file Anda   di UTF-8, saya sarankan Notepad ++.

Di Mac, gunakan Bare Bones TextWrangler (gratis) dari Mac App Store, atau Bare Bones BBEdit yang ada di Mac App Store seharga $ 39,99 ... sangat murah untuk alat yang hebat. Di salah satu aplikasi, ada menu di bagian bawah jendela dokumen tempat Anda menentukan penyandian dokumen dan Anda dapat dengan mudah memilih "UTF-8 no BOM". Dan tentu saja Anda dapat mengaturnya sebagai default untuk dokumen baru di Preferensi.

Tetapi jika Webserver Anda melayani pengkodean di header HTTP,   yang disarankan, baik [meta tag] tidak diperlukan.

Itu salah. Anda tentu saja harus mengatur pengkodean di header HTTP, tetapi Anda juga harus mengaturnya dalam atribut meta charset sehingga halaman dapat disimpan oleh pengguna, keluar dari browser ke penyimpanan lokal dan kemudian Dibuka lagi nanti, dalam hal ini satu-satunya indikasi pengkodean yang akan ada adalah atribut meta charset. Anda juga harus menetapkan tag dasar untuk alasan yang sama ... di server, tag dasar tidak diperlukan, tetapi ketika dibuka dari penyimpanan lokal, tag dasar memungkinkan laman berfungsi seolah-olah berada di server, dengan semua aset di tempat dan seterusnya, tidak ada tautan yang rusak.

AddDefaultCharset UTF-8

Atau Anda bisa mengubah pengkodean jenis file tertentu seperti ini:

AddType text/html;charset=utf-8 html

Tip untuk menyajikan file UTF-8 dan Latin-1 (ISO-8859-1) adalah memberikan file UTF-8 ekstensi "text" dan file Latin-1 "txt."

AddType text/plain;charset=iso-8859-1 txt
AddType text/plain;charset=utf-8 text

Akhirnya, pertimbangkan Menyimpan dokumen Anda dengan akhiran baris Unix, bukan legasi DOS atau (klasik) akhiran Mac, yang tidak membantu dan mungkin melukai, terutama di telepon saat kita semakin jauh dari sistem warisan tersebut. Sebuah dokumen HTML dengan valid HTML5, UTF-8 encoding, dan akhiran baris Unix adalah pekerjaan yang dilakukan dengan baik. Anda dapat berbagi dan mengedit serta menyimpan dan membaca serta memulihkan dan bergantung pada dokumen itu dalam banyak konteks. Lingua franca. Ini kertas digital.


78
2017-08-20 20:26



<meta charset="utf-8">diperkenalkan dengan / untuk HTML5.

Seperti yang disebutkan dalam dokumentasi, keduanya valid. Namun, <meta charset="utf-8"> hanya untuk HTML5 (dan lebih mudah diketik / diingat).

Pada waktunya, gaya lama akan menjadi tidak berlaku lagi dalam waktu dekat. Saya akan tetap pada yang baru <meta charset="utf-8">.

Hanya ada satu cara, tetapi naik. Dalam kasus teknologi, itu berarti menghapus yang lama (sangat, sangat cepat)

Dokumentasi:  Atribut HTML meta charset — W3Schools


28
2018-06-25 21:04



Meskipun tidak menentang jawaban yang lain, saya pikir hal-hal berikut layak disebutkan.

  1. Panjang" (http-equiv) notasi dan yang "pendek" adalah sama, mana yang lebih dulu menang;
  2. Header server web akan menimpa semua <meta> tag;
  3. BOM (Byte order mark) akan menimpa segala sesuatu, dan dalam banyak kasus itu akan mempengaruhi html 4 (dan mungkin barang-barang lainnya juga);
  4. Jika Anda tidak mendeklarasikan pengkodean apa pun, Anda mungkin akan mendapatkan teks Anda dalam “penyandian teks fallback” yang didefinisikan browser Anda. Baik di Firefox maupun di Chrome, utf-8;
  5. Jika tidak ada petunjuk lain, browser akan mencoba untuk membaca dokumen Anda seolah-olah berada di ASCII untuk mendapatkan pengkodean, sehingga Anda tidak dapat menggunakan pengkodean aneh (utf-16 dengan BOM harus dilakukan, meskipun);
  6. Sementara spesifikasi mengatakan bahwa deklarasi pengkodean harus berada dalam 512 byte pertama dokumen, sebagian besar browser akan mencoba membaca lebih dari itu.

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 mengarahkan browser Anda ke localhost:4500. (Tentu saja Anda ingin mengubah atau menghapus bagian. Bagian BOM adalah \xef\xbb\xbf. Waspadalah terhadap pengkodean shell Anda.)

Harap diingat bahwa sangat penting bagi Anda untuk mendeklarasikan pengkodean secara eksplisit. Membiarkan menebak browser dapat menyebabkan masalah keamanan.


18
2018-01-15 00:03



Menggunakan <meta charset="utf-8" /> untuk browser web saat menggunakan HTML5.

Menggunakan <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> saat menggunakan HTML4 atau XHTML, atau untuk parser dom yang kedaluwarsa, seperti DOMDocument di php


9
2017-11-26 08:08



Ada beberapa berita berdasarkan Mozilla Foundation, dan sitepoint

Jangan gunakan nilai ini (http-equiv=content-type) karena sudah usang.   Lebih suka charset atribut pada <meta> elemen.    enter image description here


0
2017-08-15 23:22