<meta charset = "utf-8"> vs <meta http-equiv = "Content-Type">

HTML5 Doctype kodlamasını müəyyən etmək üçün istifadə ediləcək hansı notasiya?

  • Qısa:

     <meta charset="utf-8" /> 
  • Uzun

     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
1387
15 янв. CuriousMind tərəfindən 15 Yanvar təyin etdi 2011-01-15 01:06 '11 at 1:06 2011-01-15 01:06
@ 7 cavab

HTML5-də onlar ekvivalentdir. Xatırlamaq və yazmaq üçün daha qısa, asanlıqla istifadə edin. Geri qorunması üçün nəzərdə tutulduğu üçün brauzer dəstəyi yaxşıdır .

979
15 янв. cavab Quentin Jan 15 verilir 2011-01-15 01:09 '11 at 1:09 2011-01-15 01:09

Meta charset bəyannamələrinin hər iki forması bərabərdir və brauzerlərdə eyni işləməlidir. Ancaq web fayllarındakı bildirişlərin UTF-8 olaraq təyin edildiyi zaman yadda saxlamaq lazım olan bir neçə şey var:

  • Fayllarınızı bir bayt bayt (BOM) olmadan UTF-8 kodlamasında saxlaya bilərsiniz.
  • Meta-kodlaşdırma (məsələn, yuxarıda) istifadə edərək, HTML fayllarınızdakı kodlamanı bildirin.
  • Web-server UTF-8 kodlamasını Content-Type HTTP başlığında elan edərək fayllarınıza xidmət etməlidir.

Apache serverləri default olaraq ISO-8859-1 faylları xidmətinə görə konfiqurasiya edilir, belə ki, .htaccess dosyanıza aşağıdakı satırı əlavə .htaccess :

 AddDefaultCharset UTF-8 
border=0

Bu, Apache'nin UTF-8 kodlamasını Content-Type cədvəlinin başlığında elan edərək, fayllarınıza xidmət etməsinə səbəb olacaq, lakin faylların başlamazdan əvvəl UTF-8 (spesifikasız) saxlanılmalıdır.

Not Defteri fayllarınızı spesifikasız olaraq UTF-8-ə saxlaya bilməz. Notepad ++ olan pulsuz redaktoru. Proqram menyu çubuğunda, "Kodlaşdırma> UTF-8-də kodlaşdırma olmadan dəqiqləşdirmədən" seçin. Siz həmçinin faylları aça və UTF-8-ə "Kodlaşdırma> UTF-8-ə spesifikasız buraxın" istifadə edərək yenidən saxlaya bilərsiniz.

Vikipediyada Bayt Sifariş İmza (BOM) haqqında daha ətraflı oxuyun.

236
21 мая '11 в 10:26 2011-05-21 10:26 cədvəl CodeBoy tərəfindən 21 may '11 'də saat 10:26 ' də verilir 2011-05-21 10:26

Keçməməyin başqa bir səbəbi, markajda bir sıra simvol müəyyən edə biləcəyiniz başqa hallarda eşidir. Məsələn:

 <script type="javascript" charset="UTF-8" src="/script.js"></script> <p><a charset="UTF-8" href="http://example.com/">Example Site</a></p> 

Tutarlılıq səhvləri azaltmağa kömək edir və kodu daha oxunandır.

Şarsetin özniteliğinin halda həssas olmadığını unutmayın. UTF-8 və ya utf-8 istifadə edə bilərsiniz, lakin UTF-8 daha aydın, daha oxunaqlı və dəqiqdir.

Bundan əlavə, meta-charset özniteliği və ya səhifənin başlığında UTF-8-dən başqa heç bir dəyəri istifadə etmək üçün heç bir səbəb yoxdur. UTF-8 1999-cu ildə HTML4 ilə web sənədləri üçün standart kodlaşdırma və müasir veb səhifələr yaratmaq üçün yeganə praktik yoldur.

Ayrıca, HTML obyektlərini UTF-8-də istifadə etməməlisiniz. Müəlliflik hüququ simvolu kimi olan rəmzlər birbaşa çap olunmalıdır. Istifadə etməli olduğunuz yeganə şəxslər 5 qorunub saxlanılan simvoldur: daha az, daha çox, ampersand, sadə, cüt baş. Sahələr gələcəkdə həmişə istifadə edə bilməyən bir HTML analizatoruna ehtiyac duyur, kodunuzu daha az oxunandır, dosyanızın ölçüsünü artırır və bəzən istifadə etdiyiniz obyektlərə görə fərqli brauzerlərdə düzgün şəkildə kodlanır. Müəllif hüququnu, ticarət nişanını, açıq kotirovka, yaxın sitat, apostrophe, em tire, tire, bullet, avro və məzmununuzda qarşılaşdığınız hər hansı digər simvol daxil edin / daxil edin və kodunuzdakı bu əsl simvollardan necə istifadə edəcəyinizi öyrənin. . Mac, klaviatura sistemində aça biləcəyiniz bir simvolu görüntüləyiciyə malikdir və istədiyiniz simvolları axtarmaq və ya sürükləmək və ya daxil etmək üçün lazım olan düymələri tapmaq üçün uyğun klaviatura görüntüleyicisini istifadə edə bilərsiniz. Məsələn, ticarət nişanı Option + 2 təşkil edir. UTF-8 hər bir yazılı insan dilində bütün simvolları və simvolları ehtiva edir. Buna görə istifadə üçün heç bir bəhanə yoxdur - em emaşın əvəzinə. Yaxşı bir fikir də noktalama və tipoqrafiya qaydalarını öyrənməkdir ... məsələn, dövrün kapalı bir sitat içərisindən keçdiyini və xaricdən deyil olduğunu bilirik.

İçindəkilər və kodlaşdırma kimi bir şey üçün bir istifadə etiketi ironikdir, çünki bunları bilmədən, meta etiketinin dəyərini almaq üçün faylları ayırd edə bilməzsiniz.

Xeyr, bu deyil. Brauzer faylın brauzerinizin default kodlaması olaraq təhlilini başlatır: UTF-8 və ya ISO-8859-1. ABŞ-ASCII ISO-8859-1 və UTF-8-nin bir alt qrupu olduğundan, brauzer hər halda yaxşı oxuya bilər ... eyni şey. Brauzer bir meta kodlama etiketi ilə qarşılaşdıqda, kodlama brauzerin artıq istifadə etdiyindən fərqlənirsə, brauzer səhifəni müəyyən kodlaşdırmada yenidən yükləyir. Buna görə başlıqdan dərhal başında bir meta-chart etiketi qoyduq. Beləliklə, adınızdakı UTF-8 simvolunu istifadə edə bilərsiniz.

Faylınızı spesifikasız olaraq UTF-8-də saxlamalısınız

Bu tamamilə doğrudur. Sənəd yalnız ABŞ-ASCII simvollarını ehtiva edirsə, onu US-ASCII kimi saxlaya və UTF-8 kimi istifadə edə bilər, çünki bu, bir alt qrupdur. Ancaq Unicode simvolları varsa, doğru olduğunuzdan, bir xüsusiyyət olmadan UTF-8 kimi saxlamalısınız.

UTF-8-də fayllarınızı saxlayacaq yaxşı bir mətn redaktoruna ehtiyacınız varsa, Notepad ++ 'yı təklif edirəm.

Mac-da, Mac App Store-da olan Mac App Store-dan Bare Bones TextWrangler (pulsuz) və ya Bare Bones BBEdit istifadə edin ... 39,99 $ ... belə böyük bir vasitə üçün çox ucuz. Hər hansı bir tətbiqdə, sənədin kodlaşdırılmasını göstərdiyiniz sənədin pəncərəsinin altındakı bir menyu var və asanlıqla "UTF-8 yox BOM" seçə bilərsiniz. Və, əlbəttə, bu parametrlərdə yeni sənədlər üçün default olaraq təyin edə bilərsiniz.

Lakin web server HTTP başlığında kodlaşdırma işlədiyini düşünürsə, həm də [meta etiketləri] faydasızdır.

Bu səhvdir. Əlbəttə, HTTP başlığında şifrəni təyin etməliyəm, ancaq bu səhifəni brauzerdən yerli yaddaşa saxlaya və daha sonra yenidən açılacaq və bu halda kodlaşdırmanın yeganə əlaməti ola bilər ki, onu meta-charset öznitəsinə qoymalısınız mövcud olan meta-kodlama xüsusiyyətidir. Baza etiketini eyni səbəbə görə təyin etməliyik ... bazada tag serverdə lazım deyil, ancaq yerli lokal yaddaşdan açıldığında, əsas etiketi səhifənin serverdə olduğu kimi işləməyə imkan verir, yerdəki bütün aktivlər və s. d., broken links.

AddDefaultCharset UTF-8 əlavə edin

Yoxsa bu kimi fayl növlərinin şifrələməsini sadəcə dəyişə bilərsiniz:

 AddType text/html;charset=utf-8 html 

UTF-8 və Latın-1 fayllarına (ISO-8859-1) xidmət verən UTF-8 fayllarını mətn uzantısı və "txt" latın faylları ilə təmin etməkdir.

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

Nəhayət, bu köhnəlmiş sistemlərdən daha çox və daha çox olduğumuza görə, sənədlərinizi Unix xəttinin sonuna qədər saxlamağınızı və DOS-un və ya (klassik) Mac xəttinin köhnə versiyalarında deyil, xəttə zərər verməyəcəyinə və zərər verə biləcəyinə inanmayın. Müvafiq HTML5, UTF-8 kodlama və Unix xətti ilə bitən bir HTML sənəd yaxşı bir işdir. Bu sənədləri bir çox kontekstdə bölüşmək, redaktə etmək, saxlamaq, oxumaq və bərpa edə bilərsiniz. Bu lingua franca. Bu rəqəmsal kağızdır.

79
20 авг. Simon White tərəfindən verilmiş cavab 20 av. 2011-08-20 23:26 '11 at 11:26 pm 2011-08-20 23:26

<meta charset="utf-8"> HTML5 ilə təqdim edildi.

Sənədlərdə göstərildiyi kimi, hər ikisi etibarlıdır. Bununla belə, <meta charset="utf-8"> HTML5 (və daxil olmaq / yadda asanlaşdırmaq) üçün nəzərdə tutulmuşdur.

Bir zamanlar köhnə üslub qaçılmaz olaraq yaxın gələcəkdə köhnəlir . Yeni <meta charset="utf-8"> .

Yalnız bir yol var, ancaq bir qədər. Texniki vəziyyətdə köhnə (həqiqətən, həqiqətən sürətli)

Sənədlər: HTML meta-kodlaşdırma öznitelik-W3Schools

28
26 июня '14 в 0:04 2014-06-26 00:04 Cavab Omar 26 iyun '14 'də 0:04 2014-06-26 00:04 verilir

Digər cavablara mübahisə etmədən, mən düşünürəm ki, aşağıdakıları qeyd etmək lazımdır.

  • "uzun" ( http-equiv ) notation və "qısa" ilk növbəyə bağlı olaraq bərabərdir:
  • Web server başlığı bütün <meta> etiketlərini <meta> ;
  • BOM (byte mark) hər şeyi ləğv edəcək və bir çox hallarda bu html 4 (və ehtimal ki, digər şeylərə də) təsir edəcəkdir;
  • Hər hansı bir kodlamanı elan etməsəniz, ehtimal ki, brauzeriniz tərəfindən müəyyən edilən "yedek mətn kodlamasında" mətn alacaqsınız. Firefox-da, Chrome-da utf-8 deyil;
  • Digər istəklər olmadıqda, brauzer sənədinizi ASCII-də kodlaşdırmağı olduğu kimi oxumağa çalışacaq, belə ki, hər hansı bir qəribə kodlamadan istifadə etmirsiniz (baxmayaraq ki, BOM-da utf-16 olmalıdır);
  • Spesifikasiyalar kodlaşdırma bəyannaməsinin sənədin ilk 512 baytında olması lazım olduğunu bildirir, baxmayaraq ki, brauzerlərin əksəriyyəti bundan çox oxumağa çalışacaq.

Siz 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 çalışaraq test edə bilərsiniz 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 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 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 və brauzerin localhost:4500 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 işarə edir localhost:4500 . (Əlbəttə ki, hissələrini dəyişdirmək və ya silmək istədiyiniz \xef\xbb\xbf hissəsi. \xef\xbb\xbf kodlaşdırılmasına diqqət yetirin.)

Şifrəni açıq şəkildə elan etdiyiniz çox vacibdir. Brauzerlərə icazə verilməsi təhlükəsizlik məsələlərinə səbəb ola bilər.

18
15 янв. Cavab verən sincə yanvar 15 2016-01-15 03:03 '16, 3:03 2016-01-15 03:03

HTML5 istifadə edərkən web tarayıcıları üçün <meta charset="utf-8" /> istifadə edin.

HTML4 və ya XHTML istifadə edərkən və ya köhnəlməmiş dom parsers istifadə edərkən, məsələn DOMDocument php <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> istifadə edin

9
26 нояб. Nov. 26-də Timo Huovinenə cavab verin 2015-11-26 11:08 '15 'də saat 11:08 ' da

Mozilla Fondusitepoint əsasında bəzi xəbərlər var .

Köhnəlmiş olduğu üçün bu dəyəri ( http-equiv=content-type ) istifadə etməyin. charset xüsusiyyətini < meta > elementində üstün edin. 2019

16 авг. Cavab user10089632 16 aug tərəfindən verilir . 2017-08-16 02:22 '17 də 2:22 'də 2017-08-16 02:22' də

tags ilə bağlı digər suallar və ya sual