Pengekodan apa? Menyelesaikan masalah dengan pengekodan halaman web yang salah

Data awal

  1. Mari kita ambil tapak web kami sebagai contoh: www.yourmaster.ru
  2. Semua teks tapak ditulis dan disiarkan di tapak dalam pengekodan "windows-1251" dan penyemak imbas tidak dimaklumkan tentang perkara ini
  3. Pelayan pengehosan secara automatik menghantar pengepala berikut secara lalai:
    Jenis Kandungan: teks/html; charset=utf-8

Jika terdapat percanggahan sedemikian dalam pengekodan sebenar tapak dan maklumat pengekodan dalam pengepala yang dihantar oleh pelayan, masalah akan timbul dalam memaparkan halaman tapak dalam pelayar pelawat.

Pengekodan yang betul adalah sangat penting!

Mari cuba terangkan mengapa.

Dengan tetapan yang diterangkan di atas, penyemak imbas pengguna tidak akan dapat menentukan secara automatik dalam pengekodan teks pada tapak yang dilihat ditulis. Dan kemungkinan besar ia akan memaparkan halaman dalam kekacauan yang tidak boleh dibaca. Jika anda menghadapi "miskomunikasi" sedemikian antara penyemak imbas dan tapak anda, maka anda perlu mengambil tindakan yang sewajarnya dengan segera. Jika tidak, ini kemungkinan besar akan membawa kepada satu siri masalah yang serius.

Pertama sekali, dalam keadaan dan tetapan tapak sedemikian, pelawat perlu sentiasa secara manual (menggunakan kaedah pemilihan) menentukan pengekodan untuk penyemak imbas untuk memaparkan tapak. Ini memerlukan beberapa klik tetikus tambahan. Tetapi anda mesti mengakui, tidak semua orang ingin membuat tambahan 2-3 klik tetikus hanya untuk melihat maklumat pada halaman dalam bentuk yang boleh dibaca. Lebih-lebih lagi, ramai orang tidak tahu bukan sahaja cara menukar pengekodan paparan dalam tetapan penyemak imbas, tetapi juga pengekodan secara umum! Kebanyakan pelawat mungkin memutuskan bahawa tapak itu ditinggalkan oleh pemilik atau digodam oleh seseorang, dan akan cuba untuk tidak kembali ke tapak itu lagi.

Kedua, jika terdapat takrifan yang tidak jelas bagi pengekodan halaman tapak, enjin carian mungkin tidak mengindeks kandungan teks tapak dengan betul. Yang seterusnya menyebabkan masalah serius dengan trafik pengguna dari enjin carian. Sudah tentu, sesetengah enjin carian mungkin cuba menentukan pengekodan yang betul daripada kandungan halaman, tetapi ini tidak menjadikannya lebih mudah. Sebagai peraturan, masalah masih kekal.

Saya harap anda telah menyedari bahawa masalah dengan pengekodan boleh menjadi halangan yang sangat serius kepada fungsi tapak, pembangunannya dan menarik pelawat tetap kepadanya.

Untuk memastikan masalah seperti pengekodan tidak timbul, anda perlu membuat tetapan yang sesuai pada pelayan pengehosan dan pada halaman tapak.

Tetapan tapak mestilah sedemikian rupa sehingga mana-mana penyemak imbas atau mana-mana robot enjin carian dapat menentukan secara tidak baik dalam pengekodan maklumat dari tapak yang dihantar!

Menyelesaikan masalah pengekodan tapak

Kami telah menyedari bahawa semua teks di tapak kami ditulis dan dihantar ke penyemak imbas pelawat tapak dalam pengekodan "windows-1251". Apakah yang boleh kami lakukan untuk memastikan pelayan di mana tapak kami dihoskan menghantar maklumat pengekodan yang betul kepada penyemak imbas dalam pengepala? Mari kita teruskan mengikut urutan...

1. Agar tidak bergantung pada tetapan pelayan, pada semua halaman tapak, secara langsung dalam kod HTML, anda perlu menulis arahan berikut secara eksplisit menggunakan tag meta:

Ia mesti diletakkan pada semua halaman, sebaik-baiknya selepas teg pembukaan . Ini akan membolehkan penyemak imbas memilih pengekodan paparan yang betul secara automatik apabila memuatkan dan mentafsir halaman mengikut arahan yang diterima! Arahan ini sahaja sudah memadai untuk menyelesaikan masalah kita. Tetapi itulah cara ia dimaksudkan secara teori. Tetapi dalam amalan, arahan ini tidak selalu mencukupi. Dalam kes yang jarang berlaku, tetapi ia berlaku bahawa pelayar memilih sebagai pengekodan untuk memaparkan halaman bukan yang dinyatakan dalam arahan pada halaman itu sendiri, tetapi yang dihantar dalam pengepala dari pelayan! Dan jika maklumat pengekodan yang dinyatakan di dua tempat tidak sepadan, maka masalahnya mungkin kekal.

2. Supaya pelayan memberikan maklumat pengekodan yang betul dalam tindak balasnya, anda perlu mencipta fail dalam akar tapak anda .htaccess dan tulis arahan di dalamnya:

AddDefaultCharset windows-1251

Kemudian pelayan akan terus menghantar pengepala pengekodan secara lalai, tetapi nama pengekodan akan sepadan dengan yang berkuat kuasa di tapak itu sendiri. Tidak akan ada lagi sebarang percanggahan dalam nama.

Jika fail .htaccess sudah wujud pada pelayan anda, kemudian tambahkan arahan yang ditentukan, sebagai contoh, pada permulaannya. Dan dalam apa jua keadaan, anda tidak perlu memadam maklumat yang sudah ada di dalamnya!

Itulah penyelesaian kepada masalah. Setuju, semua ini tidak begitu sukar?! Tetapi ia sangat berguna untuk menghalang semua jenis masalah dengan pengekodan yang terkenal.

Dengan mengikut dua pengesyoran yang disenaraikan di atas berturut-turut, penyemak imbas pasti tidak akan dapat membuat kesilapan dalam memilih pengekodan yang betul secara automatik untuk memaparkan maklumat di tapak web anda. Lagipun, kami menunjukkan maklumat pengekodan dengan jelas, betul, malah dalam dua arahan yang berbeza!

Situasi khas

Situasi satu

Pencipta laman web, dan lebih kerap daripada pelanggan sendiri, mula sewenang-wenangnya dan tanpa berfikir membuat pengubahsuaian tertentu pada tapak web, meletakkan teks sesuka hati mereka, dsb. Sehinggakan, akibatnya, mereka mungkin berada di tapak web bahagian dengan maklumat dalam pengekodan yang berbeza. Kami tidak boleh mengatakan bahawa ini adalah pendekatan yang betul, tetapi kami akan menolak fakta bahawa ini berlaku dan itu sahaja. Dalam kes ini, walaupun kami mengikuti dua pengesyoran yang disenaraikan di atas, situasi mungkin masih timbul apabila pelayan memberikan maklumat tentang satu pengekodan dan pengekodan lain ditulis dengan jelas dalam kod HTML halaman. Dalam kes sedemikian, mungkin penyelesaian paling mudah ialah yang berikut.

Tulis ke fail .htaccess arahan:

AddDefaultCharset Mati

Apabila menggunakan arahan ini, pelayan tidak akan menghantar pengepala dengan maklumat tentang pengekodan halaman yang dihantar sama sekali. Kemudian penyemak imbas akan bermula daripada data pengekodan, yang ditunjukkan secara eksplisit dalam kod HTML pada halaman tapak itu sendiri. Selain itu, pada satu halaman data mungkin dikodkan windows-1251, dan pada halaman lain, contohnya dalam utf-8. Perkara utama adalah jangan lupa untuk menunjukkan pada halaman ini tag meta yang sesuai dengan maklumat tentang pengekodan yang betul untuk pengecaman dan paparan teks oleh penyemak imbas.

Walaupun penyelesaian sedemikian adalah yang paling mudah, ia, mungkin, bukan yang paling optimum dan betul. Dengan cara yang baik, anda perlu meletakkan semua maklumat di tapak dan di semua bahagian tapak dalam pengekodan yang sama! Dan jika terdapat beberapa halaman dalam pengekodan yang berbeza, maka lebih baik untuk mengemas kini maklumat di dalamnya dengan menukar semua teks ke dalam pengekodan yang diperlukan.

Situasi dua

Seperti yang anda ketahui, apabila menjana halaman, kebanyakan tapak memilih sebahagian daripada data daripada pangkalan data, contohnya, MySQL (jika tapak itu ditulis dalam PHP). Selalunya, apabila memindahkan tapak dari satu pengehosan ke pengehosan yang lain, masalah mungkin timbul disebabkan ketidakpadanan pengekodan antara data yang disimpan dalam pangkalan data MySQL dan data yang disimpan, contohnya, terus dalam templat tapak.. Oleh itu, situasi mungkin timbul apabila membuat satu halaman, ia mungkin mengandungi data dalam pengekodan yang berbeza. Ini mungkin salah satu ralat pengekodan paling serius yang mungkin berlaku pada tapak web dan harus diselesaikan dengan segera. Jika tidak, kesukaran tambahan mungkin timbul kemudian apabila mengisi dan mengedit tapak.

Penyelesaian perselisihan pendapat tersebut dengan data yang disimpan dalam pangkalan data dicapai dengan menetapkan tetapan pengekodan dengan betul secara eksplisit apabila menyambung ke pangkalan data dan sebelum mendapatkan semula data daripadanya. Contohnya, jika data di tapak web kami disimpan dalam pengekodan windows-1251, maka kami mesti membaca data daripada pangkalan data dalam pengekodan yang sama. Untuk melakukan ini, selepas menyambung ke pangkalan data menggunakan fungsi PHP mysql_connect() (atau mysql_pconnect()), jalankan pertanyaan SQL berikut:

mysql_query("SET NAMA cp1251");

Permintaan ini memberitahu pelayan pangkalan data MySQL bahawa semua data disimpan dan mesti dihantar dalam pengekodan cp1251 (ini ialah nama pengekodan yang digunakan dalam MySQL dan bukannya nama yang disebut sebelumnya windows-1251, yang digunakan semasa menghantar data HTML).


Saya telah menghabiskan beberapa jam terakhir di tapak web saya untuk menguji HTML 4.01 Strict dan saya sebenarnya telah berjaya dengannya, tetapi ada satu lagi amaran yang saya tidak dapat menyingkirkannya. Amaran:

Pengekodan aksara tidak sepadan!

Pengekodan aksara yang dinyatakan dalam pengepala HTTP (iso-8859-1) adalah berbeza daripada nilai dalam elemen (utf-8). Saya akan menggunakan nilai daripada pengepala HTTP (iso-8859-1) untuk pengesahan ini.

Untuk maklumat umum tentang cara menukar pengepala set aksara dalam susunan rangkaian yang berbeza, lihat http://www.w3.org/International/O-HTTP-charset


2018-05-25 13:30

Pelayan menandakan dokumen dengan jelas sebagai ISO-8859-1 dalam pengepala HTTP. Cuba simpan default.html menggunakan pengekodan UTF-8 menggunakan editor yang sesuai.


2018-05-25 03:07

Okay, saya datang dengan penyelesaian separa untuk masalah saya. Memandangkan ia hanya fail default.html yang menyebabkan amaran, saya menganggap bahawa pelayan melakukan sesuatu yang istimewa kepadanya kerana namanya. Jadi saya mencipta fail home.html baharu dengan kandungan yang sama seperti fail default.html dan menghalakan fail .htaccess ke fail baharu (lihat baris 3 di bawah).

# Gunakan PHP5 sebagai aplikasi AddHandler lalai/x-httpd-php5 .php DirectoryIndex home.html AddDefaultCharset UTF-8

Ini membetulkan masalah dan semua fail kini diiktiraf sebagai UTF-8. Saya masih tidak pasti apa yang pelayan lakukan dengan fail default.html atau tempat tetapan berkenaan perkara ini, tetapi apabila masalah saya hilang, saya akan melupakannya.

Dalam artikel ini, saya akan cuba mencatatkan semua "i" (serta "i") semasa memilih pengekodan untuk halaman HTML yang sedang dibuat.

Apabila saya mula membina tapak web, saya sentiasa menghadapi masalah dengan pengekodan ini. Anda menyimpan halaman HTML, memuat naik ke pelayan, membukanya, bang, dan terdapat beberapa omong kosong. Nah, hello, kami telah tiba.

Atau dalam persekitaran penyahpepijatan (contohnya, persekitaran pembangunan tempatan "") semuanya baik-baik saja, tetapi dari hosting sekali lagi mereka, bangsat terkutuk, dengan berani memandang saya.

Terdapat begitu banyak kesakitan dengan enjin. Tiba-tiba, atas sebab yang tidak diketahui, surat asli Rusia bertukar menjadi...

Sekarang kami akan menangani perkara ini secara terperinci dan anda akan tahu dengan jelas pengekodan apa untuk menyimpan halaman HTML? Dan melalui instrumen apa.

Untuk mengukuhkan persefahaman bersama, mari kita tentukan konsepnya pengekodan. Jadi, pengekodan ialah jadual surat-menyurat antara kod mesin dan aksara abjad. Terdapat beberapa urutan simbol mesin yang komputer pintar, mengikut jadual kod yang dipilih, gantikan dengan huruf yang kita fahami.

Pada 90-an abad yang lalu (apa yang kuno, dan saya masih ingat kalendar 1991 di dinding) terdapat 4 pengekodan untuk PC dan satu lagi, miliknya, untuk Mac. Ironinya nasib ialah dalam semua pengekodan ini, aksara Latin dipadankan dengan kod mesin menggunakan algoritma yang sama, tetapi berkenaan abjad Cyrillic, setiap pengekodan mempunyai pendapatnya sendiri.

Semua kekeliruan ini membawa kepada kemunculan krakozyabrs. Contohnya, jika perkataan " soalan", ditaip dalam pengekodan windows-1251, paparan dalam pengekodan KOI8-R, anda mendapat perkataan " bNOPNYA».

Alhamdulillah, tahun 90-an sudah jauh di belakang kita dan daripada lima pengekodan delusi, hanya tinggal dua pengekodan biasa. Tetapi ini sudah cukup untuk juruweb pemula tersesat dalam dua pokok pain. Tidak mengapa, jangan risau, sekarang saya akan bawa awak keluar dari hutan ini!

Pada masa ini pilihan untuk Pengekodan dokumen HTML terletak di antara windows-1251 dan utf-8. Dan kini perhatian: utf-8 jauh lebih kaya, lebih berkuasa dan masa depan terletak padanya. Jadi kami akan menyimpan fail HTML kami dalam utf-8.

Saya akan membenarkan kata-kata saya ;). UTF-8 mengandungi aksara seperti ↓. Dan dalam windws-1251, bukannya simbol ini, ini ialah: > . Dan dalam utf-8 terdapat tanda "euro"; utf-8 juga membolehkan anda menggabungkan sekumpulan aksara khusus berbeza yang digunakan dalam bahasa seperti Georgia, Ibrani, Cina, Jepun dalam satu fail HTML; dan juga utf-8dalam pengekodan HTML- ini adalah peraturan adab yang baik.

Saya harap saya telah meyakinkan anda dan anda akan menggunakan Unicode (omong-omong, "utf-8" dan "Unicode" adalah sinonim, atau, lebih tepat lagi, utf-8 ialah salah satu pengekodan keluarga Unicode, yang mempunyai mendapat populariti dalam kalangan pembangun web) .

Sekarang mari kita lihat dengan lebih dekat alat transcoding fail yang saya syorkan anda gunakan, pembaca yang budiman.

Alat untuk bekerja dengan pengekodan fail HTML

Sebenarnya, hanya ada tiga daripada mereka:

  • PSPad. Editor teks percuma, kegemaran saya.
  • . Satu lagi editor teks yang bagus dan juga percuma.
  • Dreamweaver. Nah, anda sudah biasa dengan Dreamweaver daripada saya.

Kami memuatkan beberapa fail HTML ke dalam PSPad. Dan bagaimanakah kita boleh memahami jenis pengekodan subjek eksperimen yang dimuatkan? Secara ringkas, semuanya ditulis dengan jelas dalam bar status (di bawah).

Buka pengekodan fail HTML windows-1251

Sekarang, apabila membuat dokumen HTML baharu, mari kita uruskan pengekodannya.

Jom ke menu kegemaran saya PSPad. Kami berminat dengan barang tersebut Format. Di dalamnya kami akan menandai kotak di sebelah pengekodan utf-8.

Jadi pengekodan fail masa hadapan ialah windows-1251

Sekarang tentang bagaimana tukar pengekodan fail HTML. Ya, ternyata sangat mudah:

Anda perlu mengklik pada pengekodan yang diperlukan dalam item menu Format dan pengekodan akan berubah. Selepas itu, simpan fail, ia dikod semula, kerja selesai.

Berkenaan Notepad++ semuanya hampir sama dengan keadaan yang diterangkan di atas. Hanya untuk bekerja dengan pengekodan anda perlu menggunakan item menu Pengekodan.

Satu-satunya perbezaan ialah dalam kes Notepad++, item menu muncul yang direka khas untuk penukaran pengekodan Tukar... (tidak perlu pada pendapat saya, semuanya lebih mudah pada PSPad dan itulah sebabnya saya menggunakannya). Sehubungan itu, ini adalah yang anda perlu klik jika anda ingin menukar pengekodan fail HTML kami.

Antara lain, apabila menyimpan dalam utf-8 kita mempunyai pilihan: tanpa BOM atau dengan BOM. Kami sebagai webmaster perlu menggunakan pengekodan UTF-8 (tiada BOM).

Inilah yang Wikipedia akan menjawab soalan "apa itu BOM"

Untuk menentukan format perwakilan Unicode dalam fail teks, teknik digunakan di mana aksara U+FEFF (ruang tidak pecah sifar lebar), juga dipanggil Tanda Pesanan Byte (BOM), ditulis pada permulaan teks. . Kaedah ini membezakan antara UTF-16LE dan UTF-16BE kerana aksara U+FFFE tidak wujud. Ia juga kadangkala digunakan untuk merujuk kepada format UTF-8, walaupun konsep susunan bait tidak digunakan untuk format ini.

Jika anda membaca teks di atas 10 kali dan menggaru kepala anda, ia menjadi jelas: untuk utf-8 BOM kita TIDAK perlukan. Di samping itu, jika anda menyimpan fail dengan skrip php dalam pengekodan utf-8 dengan BOM, maka ia tidak akan berfungsi, kerana pengendali tidak akan memahami jenis karut yang ditulis pada permulaan fail skrip (maksud saya ruang yang tidak pecah dengan lebar sifar).

Baiklah, yang tinggal hanyalah melihat dengan lebih dekat Dreamweaver.

Apabila mencipta fail baharu, perhatikan pengekodan yang akan dibuat. Untuk melakukan ini, dalam tetingkap untuk mencipta dokumen baharu Fail → Baharu (Ctrl+N) gunakan butang Keutamaan...

Dan lihat apa yang ditetapkan sebagai pengekodan lalai:

Pengekodan lalai bagi fail HTML yang dijana dalam Dreamweaver

Transcode fail HTML terbuka dalam Dreamweaver mungkin dalam dialog Sifat Halaman, yang dilancarkan daripada menu Ubah suaiSifat Halaman (Ctrl + J).

Pilih pengekodan yang diperlukan, tekan okey dan itu sahaja, tugas transcoding telah selesai (tetapi BOM masih tidak diperlukan, jangan tandai kotak).

Pengesanan pengekodan penyemak imbas

Jadi, fail HTML kami disimpan dalam pengekodan yang telah kami pilih. Sekarang mari kita lihat soalan: Bagaimanakah pelayar mengetahui tentang pengekodan yang digunakan dalam fail HTML tertentu?

Terdapat tiga pilihan di sini:

1. Kami sendiri memberitahu pelayar apakah pengekodan yang ditetapkan untuk fail HTML ini. Ini dilakukan menggunakan tag META

Contoh di atas mengarahkan penyemak imbas bahawa fail HTML yang dimuat turun disimpan dalam pengekodan utf-8.

Jika fail HTML disimpan dalam pengekodan windows-1251, maka:

Dengan cara ini, apabila mentranskodkan fail, jangan lupa untuk menukar arahan dalam tag META kepada yang semasa. Dreamweaver, apabila menukar pengekodan, melakukan ini secara automatik, tetapi dalam editor teks lain anda perlu memadankan pengekodan yang digunakan dan arahan teg META sendiri.

HTML lengkap kelihatan seperti ini (saya memetiknya untuk memahami soalan "di manakah teg META dengan arahan pengekodan ditunjukkan?" perhatikan baris ke-4):

Dokumen Tidak Bertajuk Nah, dll.

2. Menggunakan fail .htaccess. Kadangkala pelayan akan memaksa pengepala untuk fail HTML yang dimuat turun dan memberitahu penyemak imbas pengekodan lalai. Dalam kes ini, penyemak imbas tidak memberi perhatian kepada arahan dalam teg META, tetapi memaparkan fail HTML dalam pengekodan yang dilaporkan oleh pelayan. Untuk membolehkan fail dimuat turun dalam pengekodan yang anda perlukan (selalunya pengehosan memaksa anda untuk menentukan pengekodan windows-1251), fail yang dipanggil ".htaccess" dicipta dalam akar direktori pengehosan.

Fail ini bertujuan untuk konfigurasi pelayan tambahan. Kesan arahan .htaccess dikenakan pada semua fail dan subdirektori yang terletak dalam direktori tempat anda menyimpan fail .htaccess.

Anda boleh mencipta fail ini, contohnya, dalam Total Commander dengan menekan kombinasi hotkey Shift+F4 dan menyatakan nama fail yang dibuat .htaccess. Seterusnya, editor teks menentukan arahan untuk tetapan pengekodan lalai tambahan.

Untuk fail HTML yang dikodkan utf-8 dalam .htaccess anda perlu menulis satu baris:

AddDefaultCharset UTF-8

Untuk fail HTML dalam pengekodan Windows-1251:

AddDefaultCharsetWindows-1251

Jika pengehosan anda bijak dan tidak mempedulikan arahan ini, maka anda boleh mencuba:

Charsetdisable on AddDefaultCharset Off

Jika ini tidak berjaya, maka cuma tanya hos anda apa yang perlu anda lakukan untuk melumpuhkan pengekodan lalai :). Semua ini bergantung pada tetapan pelayan khusus penyedia pengehosan.

3. Arahan PHP yang menyatakan pengekodan lalai. Dalam fail yang perlu dipaparkan dalam pengekodan yang dikehendaki, walaupun tetapan pelayan penyedia pengehosan, arahan dengan kod php ditunjukkan pada awalnya:

Kod php ini akan menghantar pengepala pelayan yang menunjukkan pengekodan lalai penyemak imbas. Dalam contoh di atas, pengekodan utf-8 akan digunakan untuk memaparkan halaman.

Biasanya tiada helah dalam tetapan pelayan penyedia pengehosan untuk menangani sekerap tersebut.

Saya ingin ambil perhatian bahawa untuk pelayan memproses arahan PHP, fail html mesti mempunyai sambungan .php(contohnya index.php).

Adakah anda mempunyai sebarang soalan lain tentang pengekodan? Tulis dalam komen. Kita perlu menyelesaikan masalah ini sekali dan untuk semua :)

Vlad Merzhevich

Tag meta digunakan untuk menyimpan maklumat yang dimaksudkan untuk pelayar dan enjin carian. Contohnya, enjin carian mengakses teg meta untuk mendapatkan penerangan tapak, kata kunci dan data lain.

Tag meta untuk enjin carian

Terdapat pendapat di kalangan pembangun laman web bahawa tag meta yang ditulis dengan betul membolehkan anda naik ke bahagian atas enjin carian. Sebenarnya, ini tidak benar; tag meta sahaja tidak akan membantu anda meningkat tinggi, tetapi kandungan tag meta yang dilaksanakan dengan buruk boleh memburukkan kedudukan tapak.

Dua tag meta direka khusus untuk enjin carian: penerangan dan kata kunci. Sesetengah juruweb menambah kata kunci pada bahagian kata kunci yang tidak ada kaitan dengan topik tapak, tetapi bagaimanapun menikmati beberapa kejayaan dalam kalangan pelawat enjin carian. Walau bagaimanapun, selepas beberapa lama, enjin carian belajar untuk menangani fenomena ini dan menyemak kandungan halaman web untuk pematuhan dengan kata kunci yang dinyatakan.

Beberapa prinsip yang berkaitan dengan tag meta:

  • jangan masukkan kata kunci yang tidak terkandung pada halaman anda;
  • jangan ulang kata kunci;
  • gunakan tag meta untuk tujuan yang dimaksudkan;
  • buat penerangan dan senarai kata kunci berbeza untuk setiap halaman tapak, dengan mengambil kira kandungannya.

penerangan

Kebanyakan enjin carian memaparkan kandungan medan penerangan (contoh 1) apabila memaparkan hasil carian. Jika teg ini tiada pada halaman, maka enjin carian hanya akan menyenaraikan perkataan pertama yang ditemui pada halaman, yang, sebagai peraturan, tidak begitu relevan dengan topik tersebut.

Contoh 1: Menggunakan Penerangan

penerangan

kata kunci

Tag meta ini bertujuan untuk menerangkan kata kunci yang muncul pada halaman (Contoh 2). Tetapi akibatnya, tindakan orang yang ingin mencapai bahagian atas enjin carian dengan apa-apa cara yang diperlukan kini telah diragui. Oleh itu, banyak enjin carian melangkau parameter ini.

Contoh 2: Menggunakan Kata Kunci

kata kunci

Kata kunci boleh disenaraikan dipisahkan dengan ruang atau koma. Enjin carian sendiri akan menukar entri kepada borang yang mereka gunakan.

Automuat halaman

Untuk memuat turun dokumen baharu secara automatik selepas tempoh masa tertentu, gunakan arahan http-equiv="refresh" (contoh 3).



Penyemak imbas akan memahami entri ini untuk menunggu 5 saat dan kemudian memuatkan halaman baharu yang dinyatakan dalam parameter URL, dalam kes ini pautan ke tapak tapak web.

Tag meta ini membolehkan anda membuat ubah hala ke tapak lain. Jika tiada URL ditentukan, halaman semasa akan dimuat semula secara automatik selepas bilangan saat yang dinyatakan dalam atribut kandungan.

Pengekodan

Untuk memberitahu penyemak imbas tentang pengekodan aksara pada halaman web, anda perlu menetapkan parameter . Untuk sistem pengendalian Windows dan abjad Cyrillic, charset biasanya mengambil nilai utf-8 atau windows-1251 (contoh 4).

Contoh 4. Memilih pengekodan semasa

Pengekodan

Cyrillic



Jika tiada pengekodan ditentukan, penyemak imbas sendiri cuba menentukan jenis aksara yang digunakan dalam dokumen dan memilih pengekodan yang diperlukan secara automatik. Penyemak imbas mungkin tidak selalu mengenali bahasa halaman web dengan tepat dan dalam beberapa kes akan mencadangkan pengekodan Vietnam dan bukannya Cyrillic. Atas sebab ini, adalah lebih baik untuk sentiasa memasukkan baris yang diberikan. Walau bagaimanapun, terdapat keadaan yang menyatakan pengekodan boleh menyebabkan sedikit kemudaratan. Contohnya, pelayan web secara automatik menggunakan transcoding data dalam KOI-8, dan penyemak imbas, apabila ia menemui parameter charset=windows-1251, menukar teks kepada pengekodan Windows. Ini mengakibatkan perubahan dua kali ganda aksara; tidak mudah untuk membaca teks sedemikian. Nasib baik, masalah seperti itu sudah lama berlalu; dalam apa jua keadaan, ia boleh dikenal pasti dengan mudah dan dineutralkan di peringkat pelayan.

Salah satu masalah paling biasa yang dihadapi oleh seorang pemula Juruweb(dan bukan hanya pemula), ini masalah dengan pengekodan di tapak. Malah bagi saya ia sentiasa muncul semasa membuat tapak web " abracadabra"Tetapi, mujurlah, saya tahu betul bagaimana untuk menyelesaikan masalah ini, jadi saya menyusun segala-galanya dalam beberapa saat. Dan dalam artikel ini saya akan cuba mengajar anda dengan cepat menyelesaikan masalah yang berkaitan dengan pengekodan di tapak.

Perkara pertama yang perlu diperhatikan ialah semua masalah dengan penampilan "abracadabra" dikaitkan dengan ketidakpadanan antara pengekodan dokumen dan pengekodan yang ditetapkan oleh penyemak imbas. Katakan dokumen masuk windows-1251, tetapi atas sebab tertentu pelayar memaparkan UTF-8. Dan punca percanggahan sedemikian mungkin sebab berikut.

Sebab pertama

Tag meta ditulis dengan salah jenis kandungan. Berhati-hati, ia harus sentiasa mengandungi pengekodan di mana dokumen anda ditulis.

Sebab kedua

Nampaknya tag meta ditulis mengikut cara yang anda mahukan, dan penyemak imbas memaparkan dengan tepat apa yang anda mahukan, tetapi atas sebab tertentu masih terdapat masalah dengan pengekodan. Penyebabnya di sini hampir pasti bahawa dokumen itu sendiri mempunyai pengekodan yang berbeza. Jika anda bekerja di Notepad++, kemudian di bahagian bawah sebelah kanan terdapat nama pengekodan dokumen semasa (contohnya, ANSI). Jika anda meletakkan tag meta UTF-8, dan dokumen itu sendiri ditulis dalam ANSI, kemudian lakukan penukaran kepada UTF-8(melalui menu " Pengekodan"dan titik" Tukar kepada UTF-8 tanpa BOM").

Sebab ketiga

Sebab keempat

Dan akhirnya, sebab popular terakhir ialah masalah dengan pengekodan dalam pangkalan data. Mula-mula, pastikan semua jadual dan medan anda ditulis dalam pengekodan yang sama, yang sepadan dengan pengekodan tapak yang lain. Jika ini tidak membantu, maka selepas menyambung dalam skrip, jalankan permintaan berikut:

TETAPKAN NAMA "utf8"

bukannya " utf8" mungkin ada pengekodan yang berbeza. Selepas itu, semua data dari pangkalan data harus keluar dalam pengekodan yang betul.

Dalam artikel ini, saya harap saya telah menjelaskan, sekurang-kurangnya, 90% masalah yang berkaitan dengan penampilan "omong kosong" di laman web. Kini anda perlu menangani masalah yang popular dan mudah seperti pengekodan yang salah dalam masa yang singkat.