Ini telah membingungkan saya selama beberapa waktu. Dengan munculnya UTF-8 sebagai standar de-facto dalam pengembangan web, saya tidak yakin dalam situasi apa saya seharusnya menggunakan entitas HTML dan untuk situasi apa saya harus menggunakan karakter UTF-8. Sebagai contoh,
- em tanda hubung (-,
&emdash;
) - ampersand (&,
&
) - Pecahan 3/4 (¾,
¾
)
Tolong jelaskan masalah ini. Itu akan dihargai.
html
xhtml
html-entities
allesklar.dll
sumber
sumber
Jawaban:
Anda biasanya tidak perlu menggunakan entitas karakter HTML jika editor Anda mendukung Unicode. Entitas dapat berguna jika:
kode lebih jelas daripada karakter spasi kosong yang sesuai.<
,&
, atau"
.sumber
alih-alih karakter spasi kosong, sebagian karena Firefox mengubah U + 00A0 menjadi U + 0020 dalam bentuk. Jadi, menggunakan entitas dalam kasus tersebut adalah satu-satunya cara untuk memastikan bahwa sumber tidak menjadi kacau setiap kali pengguna Firefox mengeditnya.<
yang sering perlu keluar, tidak pernah>
(dan"
jarang perlu melarikan diri di dalam nilai atribut).&
harus selalu digunakan sebagai pengganti&
? Apakah ada alasan untuk ini?Berdasarkan komentar yang saya terima, saya memeriksanya lebih jauh. Tampaknya saat ini praktik terbaik adalah melupakan penggunaan entitas HTML dan sebagai gantinya menggunakan karakter UTF-8 yang sebenarnya . Alasan yang tercantum adalah sebagai berikut:
Selama encoding halaman Anda disetel dengan benar ke UTF-8, Anda harus menggunakan karakter sebenarnya, bukan entitas HTML. Saya membaca beberapa dokumen tentang topik ini, tetapi yang paling berguna adalah:
Dari artikel UTF-8: Rahasia Pengkodean Karakter :
Artikel itu juga memberikan contoh bagus yang melibatkan pengkodean bahasa Mandarin. Berikut adalah contoh singkatnya demi kemalasan:
UTF-8:
這兩個字是甚麼意思
Entitas HTML :
這兩個字是甚麼意思
Encoding entitas UTF-8 dan HTML sama-sama tidak berarti bagi saya, tetapi setidaknya encoding UTF-8 dapat dikenali sebagai bahasa asing , dan akan ditampilkan dengan benar di kotak edit. Artikel selanjutnya menjelaskan hal berikut tentang versi yang dikodekan entitas HTML:
Seperti yang telah dicatat orang lain, Anda masih harus menggunakan entitas HTML untuk karakter XML yang dicadangkan (ampersand, less-than, more-than).
sumber
&entity;
sintaks dalam dokumen HTML dengan charset UTF-8 yang dinyatakan, benar? Meskipun karakter UTF-8 biasa lebih baik untuk alasan yang Anda cantumkan, tidak ada masalah masih memiliki beberapa entitas HTML di sampingnya dalam dokumen yang sama?Saya tidak akan menggunakan UTF-8 untuk karakter yang secara visual mudah membingungkan. Misalnya, sulit untuk membedakan emdash dari minus, atau terutama spasi tidak putus dari spasi. Untuk karakter ini, pasti menggunakan entitas.
Untuk karakter yang mudah dipahami secara visual (seperti contoh bahasa China di atas), lanjutkan dan gunakan UTF-8 jika Anda mau.
sumber
Secara pribadi saya melakukan semuanya di utf-8 sejak lama, namun, di halaman html, Anda selalu perlu mengonversi karakter ampersand (&), lebih besar dari (>) dan lebih kecil dari (<) ke entitas yang setara, & amp ;, & gt; dan & lt;
Selain itu, jika Anda berniat melakukan pemrograman menggunakan teks utf-8, ada beberapa hal yang harus diperhatikan.
sumber
Entitas dapat membelikan Anda beberapa kompatibilitas dengan klien mati otak yang tidak memahami pengkodean dengan benar. Saya tidak percaya itu termasuk browser saat ini, tetapi Anda tidak pernah tahu jenis program lain apa yang mungkin menarik bagi Anda.
Namun, yang lebih berguna adalah entitas HTML melindungi Anda dari kesalahan Anda sendiri: jika Anda salah mengonfigurasi sesuatu di server dan Anda akhirnya menyajikan laman dengan tajuk HTTP yang mengatakan itu
ISO-8859-1
danMETA
tag yang mengatakan ituUTF-8
, setidaknya & mdash; es Anda akan selalu berhasil.sumber
&mdash
muncul dengan benar meskipun header salah konfigurasi akan mempersulit pendeteksian masalah.Entitas HTML berguna ketika Anda ingin menghasilkan konten yang akan disertakan (secara dinamis) ke dalam halaman dengan (beberapa) pengkodean yang berbeda. Misalnya, kami memiliki konten label putih yang disertakan ke dalam halaman web berenkode ISO-8859-1 dan UTF-8 ...
Jika konversi kumpulan karakter dari / ke UTF-8 bukanlah kekacauan besar yang tidak dapat diandalkan (Anda selalu tersandung pada beberapa karakter dan beberapa alat yang tidak dapat diubah dengan benar), standarisasi pada UTF-8 akan menjadi cara yang tepat.
sumber
Jika halaman Anda dikodekan dengan benar di utf-8, Anda seharusnya tidak memerlukan entitas html, cukup gunakan karakter yang Anda inginkan secara langsung.
sumber
Semua jawaban sebelumnya masuk akal bagi saya.
Selain itu: Ini sebagian besar tergantung pada editor yang ingin Anda gunakan dan bahasa dokumen. Sebagai persyaratan minimum untuk editor adalah ia mendukung bahasa dokumen. Artinya, jika teks Anda dalam bahasa Jepang, berhati-hatilah dalam menggunakan editor yang tidak menampilkannya (tidak ada entitas untuk dokumen itu sendiri). Jika itu bahasa Inggris, Anda bahkan dapat menggunakan editor mirip-vim lama dan menggunakan entitas hanya untuk yang relatif jarang & copy; dan teman-teman. Tentu saja: & gt; for> dan HTML khusus lainnya masih membutuhkan pelarian. Tetapi bahkan dengan bahasa latin-1 lainnya (Jerman, Prancis, dll.) Menulis ä adalah menyebalkan Anda tahu di mana ...
Selain itu, saya pribadi menulis entitas untuk karakter yang tidak terlihat dan yang terlihat mirip dengan standar-ascii dan oleh karena itu mudah bingung. Misalnya, ada u1173 (tampak seperti tanda hubung di beberapa rangkaian karakter) atau u1175, yang terlihat seperti bilah vertikal. Bagaimanapun, saya akan menggunakan entitas untuk itu.
sumber