Deklaracja kodowania w html. Kodowanie HTML. W jakim kodowaniu zapisać stronę internetową

Prawie każdy nowicjusz w dziedzinie tworzenia stron internetowych prędzej czy później napotyka problemy z kodowaniem w swoich projektach. A potem, zgodnie z napisanym scenariuszem, zaczyna się bombardowanie forów od pytań o to, jak pokonać znienawidzonych ” krakozyabry„.Zdecydowana większość problemów jest od dawna znana i leczy się dość łatwo, wystarczy wiedzieć” gdzie boli i jaką pigułkę brać Dlatego proponuję przeanalizować najpopularniejsze błędy, przez które pojawia się ten problem i niewykluczone, że moje zalecenia uchronią Państwa przed dalszymi z nimi kolizjami.

Po pierwsze zdecydowanie to polecam wszystkie dokumenty były w tym samym kodowaniu a baza danych, czyli pola z danymi łańcuchowymi, miała takie samo kodowanie. Jest ustawiany podczas tworzenia bazy danych lub można określić porównanie dla każdego pola z osobna. Jeśli tworzysz bazę danych za pomocą phpMyAdmin, nie powinno być żadnych trudności: zakładka "Bazy danych" > w polu pod "Utwórz bazę danych" wpisz nazwę swojej przyszłej bazy danych > obok listy rozwijanej "Porównania". Jeśli tworzysz bazę danych za pomocą zapytania sql, napisz coś takiego:

UTWÓRZ BAZĘ DANYCH, JEŚLI NIE ISTNIEJE `my_db_name` ZESTAW ZNAKÓW utf8 UKŁADANIE utf8_general_ci;

Wybór kodowania należy do Ciebie, ale radzę wybrać dla dokumentów ” UTF-8 bez BOM" i porównanie dla bazy " utf8_general_ci" (wielojęzyczny Unicode, bez rozróżniania wielkości liter). Tylko nie zapomnij grać bezpiecznie i zrobić zrzut przed manipulowaniem bazą danych! Nie będę tutaj opisywał czym jest BOM, ale jeśli jest bardzo przenośny i na palcach, to jest to taki niewidzialny znacznik, który planowano rozróżniać kodowanie UTF-16LE i UTF-16BE, ale z jakiegoś powodu okazał się nieodebrane i teraz przeszkadzają w sieci - deweloperzy żyją w spokoju ;) BOM wygląda jak symbol U+FEFF i ustala się na początku dokumentu. Dlaczego nadal jest UTF-8? Oto co najmniej kilka powodów... Możesz z łatwością wyświetlić na ekranie zarówno cyrylicę, jak i cytat z wierszy Al-Mutanabbiego lub chińskie znaki. Dzieje się tak dlatego, że w tym samym kodowaniu windows-1251 (cp1251) jest tylko 256 znaków, podczas gdy w UTF-8 jest ich około stu tysięcy plus wszystko Symbole specjalne, piktogramy, ikony itp. Jeśli zamierzasz używać żądań ajax na swojej stronie, to również dodaje plus do kodowania UTF-8, ponieważ obiekt XMLHttpRequest jest zaprzyjaźniony z tym kodowaniem i będziesz musiał zboczyć z innymi, a czasem bezskutecznie. Ta sama mapa witryny (sitemap.xml), która jest używana do indeksowania przez wyszukiwarki, działa tylko wtedy, gdy ten plik jest utworzony z kodowaniem UTF-8. Ponadto to kodowanie jest standardem działania wielu funkcji PHP i jest standardem zalecanym przez W3C.

Podczas tworzenia nowego dokumentu wszystko jest jasne, ale co z istniejącym, w którym pożądana jest zmiana kodowania? Jeden z najbardziej proste sposoby jest otwarcie dokumentu w Notepad++ , wybierz " Kodowanie" i na liście " Konwertuj na UTF-8 bez BOM". Następnie zmień metatag z definicją kodowania:

A dla plików php można ustawić odpowiedni nagłówek, ale tylko wtedy, gdy plik nie jest zawarty w innym dokumencie, gdzie taki nagłówek zostanie już wysłany wcześniej. Dotyczy to zarówno nagłówka w metatagu, jak i wysłanego przez funkcję header:

Header("Content-Type: text/html; charset=utf-8");

Wynik sprawdzamy w przeglądarce. Tutaj może być kilka opcji:

  1. Wszystko jest wyświetlane w porządku, a problem zamknięty
  2. Dane zapisane statycznie wyświetlają się normalnie, ale dane z bazy nadal są takie same "zwariowane"
  3. Nic się nie zmieniło, a kodowanie pozostaje krzywe

Zacznijmy od ostatniego punktu. Szczęśliwi właściciele serwerów dedykowanych lub VPS/VDS mogą zmienić kodowanie dyrektywy default_charset w pliku konfiguracyjnym php.ini. Dla tych, którzy nie mają dostępu do php.ini lub mają, ale muszą zmienić kodowanie tylko dla jednej witryny, możesz użyć pliku .htaccess, wpisując do niego:

# w zasadzie wystarczy poniższa linia: AddDefaultCharset UTF-8 # ale czasami mogą być wymagane dodatkowe ustawienia: DefaultLanguage ru php_value default_charset "utf-8"

Plik .htaccess znajduje się w katalogu głównym Twojej witryny. Jeśli go tam nie znalazłeś, to sami go tworzymy. W zwykłym notatniku utwórz dokument> " Zapisz jako"> wybierz typ pliku" Wszystkie pliki"> w polu "Nazwa pliku" wpisz tylko kropkę i rozszerzenie " .htaccess".

Przejdźmy do drugiego punktu - jeśli baza danych została przeniesiona do pożądanego kodowania, ale dane z niej są wyświetlane krzywo na stronie. Po pierwsze, musisz upewnić się, że znaki w samej bazie danych są wyświetlane normalnie. Jeśli kodowanie nie „unosiło się” tam, możesz albo ponownie odwołać się do plików konfiguracyjnych, albo zgłosić żądanie natychmiast po połączeniu się z bazą danych:

ZESTAW NAZWY utf8;

* Tekst prośby piszę sam, ale ponieważ Nie wiem jakiego rozszerzenia używasz do pracy z MySQL, pokażę Ci kilka opcji:

// dla starszego mysql_* $db = mysql_connect("localhost", "username", "password"); mysql_select_db("db_name", $db); mysql_query("USTAW NAZWY utf8"); // dla wersji PDO i php poniżej 5.3.6 $dbh = new PDO("mysql:host=localhost;dbname=db_name", "username", "password"); $dbh->exec("USTAW NAZWY utf8"); // dla PDO i php w wersji 5.3.6 i nowszych, można określić bezpośrednio podczas tworzenia obiektu $dbh = new PDO("mysql:host=localhost;dbname=db_name;charset=utf8", "username", "password" ); // lub $db = new PDO("mysql:host=localhost;dbname=db_name", "username", "password", array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")); // dla MySQLi $mysqli = new mysqli("localhost", "username", "password", "db_name"); $mysqli->set_charset("utf8");

Ponieważ podniosłem kwestię „przestarzałego mysql_*”, chcę zwrócić uwagę na tekst wyróżniony na czerwono w dokumentacji php. Warto pomyśleć...
Jeśli miałeś jeden ze standardowych problemów, po wykonaniu niektórych lub wszystkich powyższych kroków problem z kodowaniem zostanie rozwiązany pozytywnie. Ale chciałbym też wspomnieć o kilku funkcjach, które mogą się przydać w niestandardowych sytuacjach. Możesz przeczytać o nich więcej w dokumentacji, a ja podam tylko kilka przykładów bez wchodzenia w szczegóły:

Mb_internal_encoding() Za pomocą tej funkcji możemy ustawić lub pobrać bieżące kodowanie skryptu: mb_internal_encoding("UTF-8"); // ustaw echo mb_internal_encoding(); // bez argumentu - pobierz mb_http_input() i mb_http_output() Dwie funkcje, które określają, ustawiają lub pobierają żądanie HTTP lub kodowanie znaków wyjściowych: print_r(mb_http_input("I")); // określ kodowanie danych wejściowych żądania http mb_http_output("UTF-8"); // ustaw kodowanie dla wyjścia http echo mb_http_output(); // pobierz aktualne kodowanie znaków wyjścia http iconv() Funkcja konwertuje znaki łańcucha do żądanego kodowania: echo iconv("utf-8","cp1251","PџСЂРёРІРµС‚, РјРёСЂ!"); // Witaj świecie! mb_convert_encoding() Funkcja jest podobna do iconv(), ale moim zdaniem lepiej, bo działa bardziej adekwatnie. echo mb_convert_encoding("Привет, РјРёСЂ!","cp1251","utf-8"); // Witaj świecie!

Ogólnie rzecz biorąc, nie zapomnij o analogiach funkcji do pracy z ciągami wielobajtowymi. Najczęściej mają tę samą nazwę, ale z przedrostkiem mb_. Łatwo jest poczuć różnicę. Weźmy na przykład funkcje strlen() oraz mb_strlen() i przeprowadź eksperyment mierząc długość sznurka:

// ustaw kodowanie wewnętrzne mb_internal_encoding("utf-8"); // brak różnicy dla znaków łacińskich echo strlen("incode"); // 6 echo mb_strlen("incode"); // 6 // Ale w przypadku cyrylicy to się kończy - pichalka echo strlen("incode"); // 10 echo mb_strlen("incode"); // 5

Może ktoś nie musi wyjaśniać tego zjawiska, ale dla początkujących wyjaśnię: cyrylica jest zakodowana w dwóch bajtach, a strlen() zlicza dokładnie liczbę bajtów w ciągu, a nie liczbę liter. Okazuje się więc, że pięć znaków cyrylicy pomnożone przez dwa - otrzymujemy 10. Chińskie znaki, jeśli się nie mylę, są na ogół zakodowane w trzech bajtach, więc w przyszłości dla takich przypadków, aby nie było nieporozumień, należy odpowiednie funkcje.

Powtarzam, że te rozwiązania dotyczą typowych przypadków iw zdecydowanej większości rozwiązują problem. Ale jeśli masz sytuację, w której wszystkie te metody nie zadziałały, to napisz tutaj, postaramy się wspólnie to rozgryźć i uzupełnić artykuł o nowy „przepis na ból głowy” ;) Pozwól, że odejdę.

Vlad Merzhevich

Metatagi służą do przechowywania informacji przeznaczonych dla przeglądarek i wyszukiwarek. Na przykład wyszukiwarki odwołują się do metatagów, aby pobrać opisy witryn, słowa kluczowe i inne dane.

Metatagi dla wyszukiwarek

Wśród twórców stron internetowych panuje opinia, że ​​poprawnie napisane metatagi pozwalają wspiąć się na szczyty wyszukiwarek. W rzeczywistości tak nie jest, nie osiągniesz wysokiego poziomu w przypadku niektórych metatagów, ale nieudana zawartość metatagów może pogorszyć ocenę witryny.

Dwa metatagi są zaprojektowane specjalnie dla wyszukiwarek: opis (opis) i słowa kluczowe (słowa kluczowe). Niektórzy webmasterzy dodali słowa kluczowe do sekcji słów kluczowych, które nie mają nic wspólnego z tematem strony, ale cieszą się pewnym powodzeniem wśród odwiedzających wyszukiwarki. Jednak po pewnym czasie wyszukiwarki nauczyły się radzić sobie z tym zjawiskiem i sprawdzać zawartość strony internetowej pod kątem zgodności z podanymi słowami kluczowymi.

Niektóre zasady związane z metatagami:

  • nie umieszczaj słów kluczowych, które nie znajdują się na Twoich stronach;
  • nie powtarzaj słów kluczowych;
  • używać metatagów zgodnie z ich przeznaczeniem;
  • zmień opis i listę słów kluczowych dla każdej strony serwisu, biorąc pod uwagę treść.

opis

Większość wyszukiwarek wyświetla zawartość pola opisu (przykład 1) podczas wyświetlania wyników wyszukiwania. Jeśli tego tagu nie ma na stronie, wyszukiwarka po prostu wyświetli listę pierwszych słów napotkanych na stronie, które z reguły okazują się mało istotne.

Przykład 1: Korzystanie z opisu

opis

słowa kluczowe

Ten metatag miał opisywać słowa kluczowe znalezione na stronie (przykład 2). Ale w wyniku działań ludzi, którzy chcą w jakikolwiek sposób dostać się do pierwszych linii wyszukiwarek, jest teraz zdyskredytowany. Dlatego wiele wyszukiwarek pomija ten parametr.

Przykład 2: Używanie słów kluczowych

słowa kluczowe

Słowa kluczowe mogą być wymienione oddzielone spacjami lub przecinkami. Wyszukiwarki sami doprowadzą zapis do formy, której używają.

Automatycznie ładuj strony

Aby automatycznie załadować nowy dokument po określonym czasie, użyj instrukcji http-equiv="refresh" (przykład 3).

. W przypadku systemu operacyjnego Windows i cyrylicy, charset zwykle przyjmuje wartość utf-8 lub windows-1251 (przykład 4).

Przykład 4. Wybór bieżącego kodowania

Kodowanie

cyrylica

Jeśli nie określono kodowania, przeglądarka próbuje określić, jaki typ znaków jest używany w dokumencie i automatycznie wybiera wymagane kodowanie. Przeglądarka nie zawsze może dokładnie rozpoznać język strony internetowej, aw niektórych przypadkach sugeruje kodowanie wietnamskie zamiast cyrylicy. Z tego powodu lepiej zawsze podawać daną linię. Istnieją jednak okoliczności, w których określenie kodowania może zaszkodzić. Na przykład serwer sieciowy automatycznie używa kodowania danych KOI-8, a przeglądarka napotykająca parametr charset=windows-1251 konwertuje tekst na kodowanie Windows. Okazuje się, że podwójna zmiana znaków, nie jest łatwo przeczytać taki tekst. Na szczęście ten problem należy już do przeszłości, w każdym razie można go łatwo zidentyfikować i zneutralizować na poziomie serwera.

Wstępne dane

  1. Weźmy za przykład naszą stronę internetową: www.yourmaster.ru
  2. Wszystkie teksty na stronie są napisane i publikowane na stronie w kodowaniu "okna-1251" a przeglądarka nie jest o tym informowana
  3. Serwer hostingowy domyślnie automatycznie wysyła następujący nagłówek:
    Content-Type: text/html; charset=utf-8

Przy takiej rozbieżności pomiędzy faktycznym kodowaniem serwisu a informacją o zakodowaniu w nagłówku przesłanym przez serwer, pojawią się problemy z wyświetlaniem stron serwisu w przeglądarce odwiedzających.

Prawidłowe kodowanie jest bardzo ważne!

Spróbujmy wyjaśnić dlaczego.

Przy opisanych powyżej ustawieniach przeglądarka użytkownika nie będzie w stanie automatycznie określić, w jakim kodowaniu są napisane teksty na przeglądanej stronie. I najprawdopodobniej wyświetli strony w nieczytelnej „krakozyabrze”. Jeśli napotkasz takie „nieporozumienie” między przeglądarką a witryną, musisz pilnie podjąć odpowiednie działania. W przeciwnym razie najprawdopodobniej doprowadzi to do szeregu poważnych problemów.

po pierwsze, w takich warunkach i ustawieniach witryny odwiedzający będą musieli stale ręcznie (poprzez wybór) wskazać przeglądarce kodowanie, aby wyświetlić witrynę. Będzie to wymagało kilku dodatkowych kliknięć myszką. Ale trzeba przyznać, że nie każdy będzie chciał wykonać dodatkowe 2-3 kliknięcia myszką tylko po to, aby zobaczyć informacje na stronie w czytelnej formie. Co więcej, wiele osób nawet nie wie nie tylko, jak zmienić kodowanie wyświetlania w ustawieniach przeglądarki, ale także ogólnie, czym jest kodowanie! Większość odwiedzających może zdecydować, że strona została porzucona przez właściciela lub zhakowana przez kogoś, i spróbuje nie wracać do niej ponownie.

Po drugie, w przypadku niejednoznacznej definicji kodowania stron serwisu, Wyszukiwarki mogą nieprawidłowo indeksować zawartość tekstową witryny.. Co z kolei powoduje poważne problemy z ruchem użytkowników z wyszukiwarek. Oczywiście niektóre wyszukiwarki mogą próbować w jakiś sposób określić prawidłowe kodowanie na podstawie zawartości stron, ale nie ułatwia to znacznie. Z reguły problem nadal pozostaje.

Mam nadzieję, że zdajesz sobie sprawę, że problemy z kodowaniem mogą stać się bardzo poważną przeszkodą w funkcjonowaniu serwisu, w jego rozwoju i przyciąganiu do niego stałych użytkowników.

Aby uniknąć takich problemów z kodowaniem, należy dokonać odpowiednich ustawień zarówno na serwerze hostingowym, jak i na stronach serwisu.

Ustawienia witryny powinny być takie, aby dowolna przeglądarka lub dowolny robot wyszukiwarki mógł NIEFORMALNIE określić w jakim kodowaniu przesyłane są informacje ze strony!

Rozwiązywanie problemu z kodowaniem strony

Zauważyliśmy już, że wszystkie teksty na naszej stronie są pisane i przesyłane do przeglądarki odwiedzającego stronę w kodowaniu „windows-1251”. Co zrobić, aby serwer hostujący naszą stronę przekazywał w nagłówku do przeglądarki poprawne informacje o kodowaniu? Chodźmy w porządku...

1. Aby nie zależeć od ustawień serwera, na wszystkich stronach witryny, bezpośrednio w kodzie HTML, używając metatagu, wyraźnie napisz następującą dyrektywę:

Musi być umieszczony na wszystkich stronach, najlepiej zaraz po otwierającym tagu . Umożliwi to przeglądarce automatyczne wybranie poprawnego kodowania wyświetlania zgodnie z otrzymaną dyrektywą, gdy strona jest ładowana i interpretowana! Sama ta dyrektywa powinna wystarczyć do rozwiązania naszego problemu. Ale tak było w teorii. Jednak w praktyce ta dyrektywa nie zawsze wystarcza. W rzadkich przypadkach zdarza się jednak, że przeglądarka jako kodowanie wyświetlania strony wybiera nie to, które zostało określone w dyrektywie na samej stronie, ale to, które zostało przesłane w nagłówku z serwera! A jeśli informacje o kodowaniu określone w dwóch miejscach nie pasują do siebie, problem może pozostać.

2. Aby serwer w odpowiedzi zwrócił poprawną informację o kodowaniu, musisz utworzyć plik w katalogu głównym swojej witryny .htaccess i dodaj do niego następującą dyrektywę:

Dodaj domyślny zestaw znaków okna-1251

Wtedy serwer będzie domyślnie kontynuował wysyłanie nagłówka o kodowaniu, ale nazwa kodowania będzie zgodna z obowiązującym w samej witrynie. Nie będzie więcej niezgodności w nazwach.

Jeśli plik .htaccess już istnieje na twoim serwerze, to po prostu dodaj określoną dyrektywę, na przykład na samym początku. I w żadnym wypadku nie usuwaj niepotrzebnie informacji, które już w nim istnieją!

To wszystko rozwiązanie problemu. Zgadzam się, to wszystko nie jest takie trudne?! Ale jest to bardzo przydatne w zapobieganiu wszelkiego rodzaju problemom ze znanym kodowaniem.

Stosując się do dwóch wymienionych powyżej zaleceń, przeglądarki na pewno nie będą w stanie popełnić błędu w automatycznym wyborze odpowiedniego kodowania do wyświetlania informacji w Twojej witrynie. Wszakże jednoznacznie, poprawnie, a nawet w dwóch różnych dyrektywach wskazaliśmy informację o kodowaniu!

Sytuacje specjalne

Sytuacja pierwsza

Twórcy stron, a częściej nawet sami klienci, zaczynają arbitralnie i bezmyślnie wprowadzać pewne ulepszenia na stronie, umieszczać teksty według własnego uznania i tak dalej. sekcje z informacjami w różnych kodowaniach. Nie możemy powiedzieć, że to jest właściwe podejście, ale odepchniemy to, ponieważ tak się dzieje i to wszystko. W takim przypadku, nawet jeśli zastosujemy się do dwóch powyższych zaleceń, nadal może dojść do sytuacji, gdy serwer poda informację o jednym kodowaniu, a inne kodowanie zostanie wyraźnie zapisane w kodzie HTML strony. W takim przypadku być może najprostszym rozwiązaniem byłoby następujące.

Zapisz do pliku .htaccess dyrektywa:

DodajDomyślnyWyłącz zestaw znaków

Korzystając z tej dyrektywy, serwer po prostu w ogóle nie wyśle ​​nagłówka z informacją o kodowaniu przesyłanej strony. Następnie przeglądarki zaczną od kodowania danych, które są wyraźnie określone w kodzie HTML na samych stronach witryny. Jednocześnie można zakodować dane na jednej stronie okna-1251 i na innej stronie, na przykład w utf-8. Najważniejsze, aby nie zapomnieć o wskazaniu na tych stronach odpowiednich metatagów z informacją o prawidłowym kodowaniu tekstu do rozpoznawania i wyświetlania przez przeglądarkę.

Takie rozwiązanie, choć najprostsze, ale może nie najbardziej optymalne i poprawne. W dobry sposób musisz umieścić wszystkie informacje w witrynie i we wszystkich sekcjach witryny w tym samym kodowaniu! A jeśli istnieje kilka stron w innym kodowaniu, lepiej jest zaktualizować zawarte w nich informacje, konwertując wszystkie teksty do wymaganego kodowania.

Sytuacja druga

Jak wiadomo, większość witryn podczas generowania stron wybiera część danych z bazy danych, na przykład MySQL (jeśli witryna jest napisana w PHP). Często, przy przenoszeniu strony z jednego hostingu na inny mogą pojawić się problemy z powodu niedopasowania kodowania między danymi przechowywanymi w bazie danych MySQL a danymi przechowywanymi np. bezpośrednio w szablonach witryn. Może więc zaistnieć sytuacja, że ​​tworząc jedną stronę, może zawierać dane w różnych kodowaniach. Być może jest to jeden z najpoważniejszych możliwych błędów związanych z kodowaniem na stronie i należy go natychmiast naprawić. W przeciwnym razie mogą pojawić się dodatkowe trudności podczas wypełniania i edycji strony.

Rozwiązanie takich rozbieżności z danymi przechowywanymi w bazie danych uzyskuje się poprzez prawidłowe, jawne ustawienie ustawień kodowania podczas łączenia się z bazą danych i przed wykonaniem pobierania z niej danych. Na przykład, jeśli dane na stronie są zapisane w kodowaniu windows-1251, to musimy odczytać dane z bazy danych w tym samym kodowaniu. W tym celu po połączeniu się z bazą danych za pomocą funkcji PHP mysql_connect() (lub mysql_pconnect()) wykonaj następujące zapytanie SQL:

mysql_query("USTAW NAZWY cp1251");

Zapytanie to informuje serwer bazy danych MySQL, że wszystkie dane są przechowywane i powinny być przesyłane w kodowaniu cp1251 (jest to nazwa kodowania używanego w MySQL zamiast wspomnianego wcześniej windows-1251, który jest używany podczas przekazywania danych HTML).


Później ASCII został rozszerzony (początkowo nie używał wszystkich 8 bitów), więc stało się możliwe użycie nie 128, ale 256 (2 do 8) różnych znaków, które można zakodować w jednym bajcie informacji.
To ulepszenie umożliwiło dodanie do kodowania ASCII symbole języków narodowych różnych krajów, oprócz już istniejącego alfabetu łacińskiego.
Rozszerzone opcje kodowania ASCII jest ich tak wiele, ponieważ na świecie jest tyle języków. Myślę, że wielu z Was słyszało o takim kodowaniu jak KOI8 (Information Interchange Code, 8 bitów) - jest to również kodowanie rozszerzone ASCII. KOI8 zawierał cyfry, litery alfabetu łacińskiego i rosyjskiego, a także znaki interpunkcyjne, znaki specjalne i pseudografikę.

Kodowanie ISO

Międzynarodowa Organizacja Normalizacyjna stworzyła szereg kodowań dla różnych skryptów/języków.

Kodowanie serii ISO 8859

Kodowanie Opis
ISO 8859-1 (łac.-1) Rozszerzona łacina, zawierająca znaki z większości języków zachodnioeuropejskich (angielski, duński, irlandzki, islandzki, hiszpański, włoski, niemiecki, norweski, portugalski, retoromański, farerski, szwedzki, szkocki (gaelicki) i częściowo holenderski, fiński, francuski), a także niektóre języki wschodnioeuropejskie (albański) i afrykańskie (afrikaans, suahili). Latin-1 nie zawiera znaku euro i wielkiej litery Ÿ. Ta strona kodowa jest uważana za domyślne kodowanie dokumentów HTML i wiadomości e-mail. Ta strona kodowa odpowiada również pierwszym 256 znakom Unicode.
ISO 8859-2 (łac.-2) Rozszerzona łacina, zawierająca znaki z języków środkowoeuropejskich i wschodnioeuropejskich (bośniacki, węgierski, polski, słowacki, słoweński, chorwacki, czeski). Latin-2, podobnie jak Latin-1, nie ma znaku euro.
ISO 8859-3 (łac.-3) Rozszerzona łacina, zawierająca znaki z języków południowoeuropejskich (maltański, turecki i esperanto).
ISO 8859-4 (łac.-4) Rozszerzona łacina, zawierająca znaki z języków północnoeuropejskich (języki grenlandzki, estoński, łotewski, litewski i lapoński).
ISO 8859-5 (łac./cyrylica) cyrylica, w tym symbole języków słowiańskich (białoruskiego, bułgarskiego, macedońskiego, rosyjskiego, serbskiego i częściowo ukraińskiego).
ISO 8859-6 (łaciński/arabski) Symbole używane w języku arabskim. Znaki z innych języków arabskich nie są obsługiwane. Prawidłowe wyświetlanie tekstu ISO 8859-6 wymaga obsługi pisania dwukierunkowego i kontekstowych form znaków.
ISO 8859-7 (łaciński/grecki) Symbole współczesnego języka greckiego. Może być również używany do pisania starożytnych tekstów greckich w monotonicznej ortografii.
ISO 8859-8 (łac./hebrajski) Nowoczesne symbole hebrajskie. Stosowany w dwóch wersjach: z logiczną kolejnością znaków (wymaga obsługi dwukierunkowej) oraz z wizualną kolejnością znaków.
ISO 8859-9 (łac.-5) Wariant Latin-1, który zastępuje rzadko używane znaki islandzkie tureckimi. Używany do tureckiego i kurdyjskiego.
ISO 8859-10 (łac.-6) Wariant Latin-4, wygodniejszy dla języków skandynawskich.
ISO 8859-11 (łaciński/tajski) Symbole języka tajskiego.
ISO 8859-13 (łac.-7) Wariant Latin-4, wygodniejszy dla języków bałtyckich.
ISO 8859-14 (łac.-8) Rozszerzona łacina obejmująca znaki z języków celtyckich, takich jak szkocki (gaelicki) i bretoński.
ISO 8859-15 (łac.-9) Wariant Latin-1, który zastępuje rzadko używane znaki tymi potrzebnymi do pełnej obsługi fińskiego, francuskiego i estońskiego. Ponadto do Latin-9 dodano znak euro.
ISO 8859-16 (łac.-10) Rozszerzona łacina, zawierająca znaki z Europy Południowej i Wschodniej (albański, węgierski, włoski, polski, rumuński, słoweński, chorwacki), a także niektóre języki zachodnioeuropejskie (irlandzki w nowej ortografii, niemiecki, fiński, francuski). Podobnie jak Latin-9, znak euro został dodany do Latin-10.

W przypadku dokumentów w języku angielskim i większości innych języków zachodnioeuropejskich kodowanie jest powszechnie obsługiwane ISO-8859-1.

W HTML ISO-8859-1 jest domyślnym kodowaniem (w XHTML i HTML5 domyślnym kodowaniem jest UTF-8).
Jeśli używasz kodowania strony innego niż ISO-8859-1, musisz to określić w tagu .

Dla HTML4:

Dla HTML5:

Przykładem kodowania ANSI jest dobrze znany Okna-1251.

Okna-1251 wypada korzystnie w porównaniu z innymi 8-bitowymi kodowaniami cyrylicy (takimi jak CP866 i ISO 8859-5) dzięki obecności prawie wszystkich znaków używanych w rosyjskiej typografii dla zwykłego tekstu (brakuje tylko akcentu). Zawiera również wszystkie znaki dla innych języków słowiańskich: ukraińskiego, białoruskiego, serbskiego, macedońskiego i bułgarskiego.
Poniżej znajdują się wartości dziesiętne znaków kodowania Okna-1251.

Aby wyświetlić znaki tabeli w dokumencie HTML, użyj następującej składni:

& + kod + ;

Kodowanie Windows-1251 (CP1251)

.0 .1 .2 .3 .4 .5 .6 .7 .8 .9 .A .B .C .D .MI .F

8.
Ђ
402
Ѓ
403

201A
ѓ
453

201E

2026

2020

2021

20AC

2030
Љ
409

2039
Њ
40A
Ќ
40C
Ћ
40B
Џ
40F

9.
ђ
452

2018

2019

201C

201D

2022

2013
-
2014

2122
љ
459

203A
њ
45A
ќ
45C
ћ
45B
џ
45F

A.

A0
Ў
40E
ў
45E
Ј
408
¤
A4
Ґ
490
¦
A6
§
A7
Siema
401
©
A9
Є
404
«
AB
¬
AC
­
OGŁOSZENIE
®
AE
Ї
407

b.
°
B0
±
B1
І
406
і
456
ґ
491
µ
B5

B6
·
B7
Siema
451

2116
є
454
»
nocleg ze śniadaniem
ј
458
Ѕ
405
ѕ
455
ї
457

C.
ALE
410
B
411
W
412
G
413
D
414
mi
415
ORAZ
416
Z
417
I
418
Y
419
Do
41A
L
41B
M
41C
H
41D
O
41E
P
41F

D.
R
420
Z
421
T
422
Na
423
F
424
X
425
C
426
H
427
W
428
SCH
429
Kommiersant
42A
S
42B
b
42C
mi
42D
YU
42E
I
42F

MI.
a
430
b
431
w
432
G
433
d
434
mi
435
oraz
436
h
437
oraz
438
ten
439
do
43A
ja
43B
m
43C
n
43D
o
43E
P
43F

F.
R
440
Z
441
t
442
w
443
f
444
X
445
c
446
h
447
w
448
sch
449
b
44A
s
44B
b
44C
uh
44D
Yu
44E
I
44F

Kodowanie UNICODE

Unicode (ang. Unicode) to standard kodowania znaków, który pozwala reprezentować znaki prawie wszystkich skryptów na świecie oraz znaki specjalne. Znaki reprezentowane w Unicode są zakodowane jako liczby całkowite bez znaku. Unicode ma kilka form reprezentacji znaków na komputerze: UTF-8, UTF-16 (UTF-16BE, UTF-16LE) i UTF-32 (UTF-32BE, UTF-32LE). (Angielski format transformacji Unicode - UTF).
UTF-8 jest obecnie powszechnym kodowaniem, które znalazło szerokie zastosowanie w systemach operacyjnych i przestrzeni internetowej. Tekst składający się ze znaków Unicode mniejszych niż 128 (obszar kodowy U+0000 do U+007F) zawiera ustawione znaki ASCII z odpowiednimi kodami. Dalej są obszary znaków różnych pism, znaków interpunkcyjnych i symboli technicznych. Pod znakami cyrylicy przydzielone są obszary znaków o kodach od U + 0400 do U + 052F, od U + 2DE0 do U + 2DFF, od U + A640 do U + A69F.

Kodowanie UTF-8 jest uniwersalny i ma imponującą rezerwę na przyszłość. To sprawia, że ​​jest to najwygodniejsze kodowanie do użycia w Internecie.



Włącz JavaScript, aby wyświetlić

15.03.2016

Jeszcze nie


Cześć wszystkim!
Nadal uczymy się podstaw HTML. W tej lekcji będziemy badać jak określić kodowanie html dla witryny internetowej (strony internetowej).
Ta lekcja jest bardzo ważna, ponieważ niewiedza, jak określić kodowanie strony internetowej, może spowodować, że strona będzie nieczytelna. Pytasz: „Jak to jest, nie mogą?”.
Pokażę Ci, jak wygląda mój blog z niewłaściwym kodowaniem:

Więc, Kodowanie HTML- są to tabele korespondencji kodów i symboli alfabetu. Oznacza to, że nasz komputer poprzez kodowanie zmieni kod na zrozumiałe, czytelne litery.

Aby poinformować przeglądarkę, w jakim kodowaniu znajdują się znaki strony internetowej, musisz pisać między tagami oto metatag:

Zwróć uwagę, w kodzie znajduje się słowo „nazwa kodowania”. Tutaj musisz określić kodowanie HTML.
Zwykle jest to utf-8 lub windows-1251 .

Kodowanie dlautf-8:

Kodowaniedla okna-1251:

Jeśli zapomnisz powiedzieć przeglądarce, w jakim kodowaniu znajduje się witryna lub strona internetowa, przeglądarka spróbuje automatycznie określić kodowanie, ale nie zawsze działa to poprawnie. Ostatecznie wynik będzie taki, który pokazałem na powyższym obrazku.

Przejdźmy do praktyki.

Jak stworzyć dokument HTML za pomocą
kodowanie UTF-8

"Wszystkie programy" => "Akcesoria" => "Notatnik" :

</body> </html> </p><p> <head></head> oto metatag:</p><p> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </p><p> <html> <head> <title>Moja pierwsza strona HTML na StepkinBlog..</body> </html> </p><p>Kliknij w notatniku <span>"Plik" => "Zapisz jako..."</span>:</p> <p><img src='https://i1.wp.com/stepkinblog.ru/wp-content/uploads/2016/03/kak-ukazat-kodirovku-sajta-na-html-osnovy-html-dlya-nachinayushhix-urok-20-3.png' width="100%" loading=lazy loading=lazy></p><p><br>Gdzie pozycja „Kodowanie:” określa „UTF-8”. <br>Kliknij „Zapisz” :</p> <p><img src='https://i1.wp.com/stepkinblog.ru/wp-content/uploads/2016/03/kak-ukazat-kodirovku-sajta-na-html-osnovy-html-dlya-nachinayushhix-urok-20-4.png' width="100%" loading=lazy loading=lazy></p><p>Powiększyć obraz?</p> <h3><span>Jak stworzyć dokument HTML z kodowaniem windows-1251</span></h3> <p>Otwórz standardowy notatnik. <span><i>"Wszystkie programy" => "Akcesoria" => "Notatnik"</i> </span>.<br>Następnie wklej standardowy kod HTML do notatnika:</p><p> <html> <head> <title>Moja pierwsza strona HTML na StepkinBlog..</body> </html> </p><p>Teraz określamy, w jakim kodowaniu zapisana jest strona internetowa. Aby to zrobić, umieść między tagami <head></head> oto metatag:</p><p> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> </p><p>Tak powinno się potoczyć (linia numer 4):</p><p> <html> <head> <title>Moja pierwsza strona HTML na StepkinBlog..</body> </html> </p><p>Kliknij w notatniku <span>"Plik" => "Zapisz jako..."</span>:</p> <p><img src='https://i0.wp.com/stepkinblog.ru/wp-content/uploads/2016/03/kak-ukazat-kodirovku-sajta-na-html-osnovy-html-dlya-nachinayushhix-urok-20-5.png' width="100%" loading=lazy loading=lazy></p> <p>W pozycji "Nazwa pliku" wpisz nazwę strony internetowej po łacinie z rozszerzeniem ".html". Myślę, że pamiętasz to z pierwszych lekcji. <br>Gdzie pozycja „Kodowanie:” określa „ANSI”. <br>Kliknij „Zapisz” :</p> <p><img src='https://i1.wp.com/stepkinblog.ru/wp-content/uploads/2016/03/kak-ukazat-kodirovku-sajta-na-html-osnovy-html-dlya-nachinayushhix-urok-20-6.png' width="100%" loading=lazy loading=lazy></p> <p>To wszystko!</p> <p>Większość webmasterów wybiera kodowanie UTF-8. Nie powiem powodów, bo boję się załadować Ci informacje, które nie są jeszcze potrzebne na Twoim etapie nauki HTML.</p> <p>Na przykład w notatniku ustaw kod:</p><p> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </p><p>I określ podczas zapisywania „ANSI”:</p> <p><img src='https://i1.wp.com/stepkinblog.ru/wp-content/uploads/2016/03/kak-ukazat-kodirovku-sajta-na-html-osnovy-html-dlya-nachinayushhix-urok-20-6.png' width="100%" loading=lazy loading=lazy></p> <p>Ponieważ jest to błędne, wynik będzie taki:</p> <p>Zapisz poprawnie swoje strony internetowe, aby uniknąć tych wyników</p> <p>Poprzedni post <br></span> <span>Następny post <br></p> <script>document.write("<img style='display:none;' src='//counter.yadro.ru/hit;artfast_after?t44.1;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+";h"+escape(document.title.substring(0,150))+ ";"+Math.random()+ "border='0' width='1' height='1' loading=lazy loading=lazy>");</script> <div class='yarpp-related'> <h3>Powiązana zawartość:</h3> <ol> <li><a href="https://bazava.ru/pl/kak-udalit-virus-vruchnuyu-s-kompyutera-kak-naiti-virusy-v.html" rel="bookmark" title="Jak ręcznie znaleźć wirusy w komputerze?">Jak ręcznie znaleźć wirusy w komputerze?</a></li> <li><a href="https://bazava.ru/pl/c-otkrytie-faila-programmoi-po-umolchaniyu-kak-zadat-programmu-po-umolchaniyu.html" rel="bookmark" title="Jak ustawić domyślny program do otwierania plików określonego typu w systemie Windows?">Jak ustawić domyślny program do otwierania plików określonego typu w systemie Windows?</a></li> <li><a href="https://bazava.ru/pl/wifi-ne-udaetsya-podklyuchitsya-k-etoi-seti-vosstanovlenie-sistemy-iz-kontrolnoi.html" rel="bookmark" title="Przywracanie systemu z punktu kontrolnego">Przywracanie systemu z punktu kontrolnego</a></li> <li><a href="https://bazava.ru/pl/dolgaya-zagruzka-vindovs-10-nehvatka-mesta-na-sistemnom-razdele-otklyuchit.html" rel="bookmark" title="Za mało miejsca na partycji systemowej">Za mało miejsca na partycji systemowej</a></li> </ol> </div> </div> </article> <nav class="nav-single"> <h3 class="assistive-text">Nawigacja po wpisach</h3> <span class="nav-previous"><a href="https://bazava.ru/pl/otklyuchenie-kontrolya-uchetnyh-zapisei-kak-otklyuchit-kontrol.html" rel="prev"><span class="meta-nav">Jak wyłączyć kontrolę konta użytkownika (uac) w systemie Windows?</span> Jeśli masz dość wyskakujących okienek...</a> </span> <!-- /next_post --> <span class="nav-next"><a href="https://bazava.ru/pl/medlenno-vklyuchaetsya-windows-10-antivirusnoe-programmnoe-obespechenie-prichiny.html" rel="next">Oprogramowanie antywirusowe <span class="meta-nav">→</span></a> </span> <!-- /next_post --> </nav> <div id="disqus_thread"> </div> </div> </div> <div id="secondary" class="widget-area" role="complementary"> <aside id="text-10" class="widget widget_text"> <div class="textwidget"> </div> </aside> <aside id="text-3" class="widget widget_text"> <div class="textwidget"> <div class="ya-site-form ya-site-form_inited_no" onclick="return { 'action':'/searchresult','arrow':false,'bg':'transparent','fontsize':12,'fg':'#000000','language':'uk','logo':'rb','publicname':'bazava.ru','suggest':true,'target':'_blank','tld':'ua','type':3,'usebigdictionary':true,'searchid':1,'input_fg':'#000000','input_bg':'#ffffff','input_fontStyle':'normal','input_fontWeight':'normal','input_placeholder':null,'input_placeholderColor':'#000000','input_borderColor':'#7f9db9'} "> <form action="/" method="get" target="_blank"><input type="hidden" name="searchid" value="2265218" /><input type="hidden" name="l10n" value="Wielka Brytania" /><input type="hidden" name="reqenc" value="" /><input type="search" name="text" value="" /><input type="submit" value="Wiedzieć" /></form> </div> <style type="text/css"> .ya-page_js_yes .ya-site-form_inited_no { display: none; } </style> <script type="text/javascript"> (function(w, d, c) { var s = d.createElement('script'), h = d.getElementsByTagName('script')[0], e = d.documentElement; if ((' ' + e.className + ' ').indexOf(' ya-page_js_yes ') === -1) { e.className += ' ya-page_js_yes'; } s.type = 'text/javascript'; s.async = true; s.charset = 'utf-8'; s.src = (d.location.protocol === 'https:' ? 'https:' : 'http:') + '//site.yandex.net/v2.0/js/all.js'; h.parentNode.insertBefore(s, h); (w[c] || (w[c] = [])).push(function() { Ya.Site.Form.init() }) })(window, document, 'yandex_site_callbacks'); </script> </div> </aside> <aside id="categories-2" class="widget widget_categories"> <h3 class="widget-title">Kategorie</h3> <ul> <li class="cat-item cat-item-4"><a href="https://bazava.ru/pl/category/internet/">Internet</a> </li> <li class="cat-item cat-item-4"><a href="https://bazava.ru/pl/category/programs/">Programy</a> </li> <li class="cat-item cat-item-4"><a href="https://bazava.ru/pl/category/windows/">Okna</a> </li> <li class="cat-item cat-item-4"><a href="https://bazava.ru/pl/category/devices/">Urządzenia</a> </li> <li class="cat-item cat-item-4"><a href="https://bazava.ru/pl/category/android/">Android</a> </li> <li class="cat-item cat-item-4"><a href="https://bazava.ru/pl/category/computer/">Komputer</a> </li> <li class="cat-item cat-item-4"><a href="https://bazava.ru/pl/category/apple/">Jabłko</a> </li> </ul> </aside> <aside id="recent-posts-2" class="widget widget_recent_entries"> <h3 class="widget-title">nowe wpisy</h3> <ul> <li> <a href="https://bazava.ru/pl/bios-zagruzka-s-diska-chistaya-zagruzka-windows-kak-sdelat-zachem-nuzhna.html">Czysty rozruch systemu Windows: jak to zrobić, dlaczego go potrzebujesz</a> </li> <li> <a href="https://bazava.ru/pl/sozdaetsya-vremennyi-profil-v-windows-7-chto-takoe-vremennyi.html">Co to jest tymczasowy profil systemu Windows i jak go usunąć</a> </li> <li> <a href="https://bazava.ru/pl/kak-izmenit-vybor-programmy-po-umolchaniyu-kak-zadat-programmu-po.html">Jak ustawić domyślny program do otwierania plików określonego typu w systemie Windows?</a> </li> <li> <a href="https://bazava.ru/pl/metody-zarazheniya-brauzera-vredonosnymi-programmami-kak-poimat-virus-kak.html">Jak ręcznie usunąć wirusa z komputera?</a> </li> <li> <a href="https://bazava.ru/pl/kak-otklyuchit-knopku-windows-na-klaviature.html">Jak wyłączyć przycisk Windows na klawiaturze?</a> </li> <li> <a href="https://bazava.ru/pl/menyaem-ikonku-i-nazvanie-fleshki-kak-izmenit-nazvanie-usb-nakopitelya.html">Jak zmienić nazwę dysku USB</a> </li> <li> <a href="https://bazava.ru/pl/ustanovka-kingo-rut-na-android-kak-polzovatsya-kingroot-na.html">Jak korzystać z Kingroot na Androidzie!</a> </li> <li> <a href="https://bazava.ru/pl/luchshie-redaktory-html-css-php-luchshie-php-redaktory-pochemu-imenno-eto-redaktor-stoit.html">Najlepsze edytory html css php</a> </li> <li> <a href="https://bazava.ru/pl/krasivye-hlebnye-kroshki-sozdanie-ploskih-hlebnyh-kroshek-s-ispolzovaniem.html">Tworzenie płaskiej bułki tartej za pomocą CSS</a> </li> <li> <a href="https://bazava.ru/pl/chto-delat-esli-zavis-aifon-kak-predotvratit-zavisaniya-v.html">Jak zapobiegać zamarzaniu w przyszłości?</a> </li> </ul> </aside> <aside id="text-7" class="widget widget_text"> <div class="textwidget"> </div> </aside> </div> </div> <footer id="colophon" role="contentinfo"> <div class="site-info"> <a href="https://bazava.ru/pl/" title="Strona główna Portal sprzętu">Strona główna Portal sprzętu</a> </div> </footer> </div> <script type='text/javascript' src='https://bazava.ru/wp-content/plugins/contact-form-7/includes/js/scripts.js?ver=4.9.1'></script> <script type='text/javascript'> /* <![CDATA[ */ var tocplus = { "visibility_show":"show","visibility_hide":"hide","width":"Auto"} ; /* ]]> */ </script> <script type='text/javascript' src='https://bazava.ru/wp-content/plugins/table-of-contents-plus/front.min.js?ver=1509'></script> <script type='text/javascript' src='https://bazava.ru/wp-content/plugins/wpfront-scroll-top/js/wpfront-scroll-top.min.js?ver=1.6'></script> <script type='text/javascript' src='/wp-includes/js/comment-reply.min.js?ver=4.9.1'></script> <script type='text/javascript' src='https://bazava.ru/wp-content/themes/twentytwelve/js/navigation.js?ver=20140711'></script> <script type='text/javascript'> var q2w3_sidebar_options = new Array(); q2w3_sidebar_options[0] = { "sidebar" : "sidebar-1", "margin_top" : 10, "margin_bottom" : 0, "stop_id" : "", "screen_max_width" : 0, "screen_max_height" : 0, "width_inherit" : false, "refresh_interval" : 1500, "window_load_hook" : false, "disable_mo_api" : false, "widgets" : ['text-7'] } ; </script> <script type='text/javascript' src='https://bazava.ru/wp-content/plugins/q2w3-fixed-widget/js/q2w3-fixed-widget.min.js?ver=5.0.4'></script> <script type='text/javascript' src='/wp-includes/js/wp-embed.min.js?ver=4.9.1'></script> <script type='text/javascript' src='https://bazava.ru/wp-content/plugins/disqus-comment-system/media/js/disqus.js?ver=4.9.1'></script> <script type='text/javascript' src='https://bazava.ru/wp-content/plugins/disqus-comment-system/media/js/count.js?ver=4.9.1'></script> <div id="wpfront-scroll-top-container"><img src="https://bazava.ru/wp-content/plugins/wpfront-scroll-top/images/icons/1.png" alt="" / loading=lazy loading=lazy></div> <script type="text/javascript">function wpfront_scroll_top_init() { if(typeof wpfront_scroll_top == "function" && typeof jQuery !== "undefined") { wpfront_scroll_top({ "scroll_offset":100,"button_width":0,"button_height":0,"button_opacity":0.8,"button_fade_duration":200,"scroll_duration":400,"location":1,"marginX":20,"marginY":20,"hide_iframe":false,"auto_hide":false,"auto_hide_after":2} );} else { setTimeout(wpfront_scroll_top_init, 100);} }wpfront_scroll_top_init();</script> </body> </html>