Okna.  Wirusy.  Laptopy.  Internet.  Biuro.  Narzędzia.  Kierowcy

W tym artykule omówione zostanie kodowanie w systemie Windows. Każdy w swoim życiu choć raz używał i pisał aplikacje konsolowe jako takie. Nie ma znaczenia z jakiego powodu. Niezależnie od tego, czy chodzi o przerwanie procesu, czy po prostu napisanie „Witam!!! Nie mogę ustawić normalnego kodowania, więc patrzę na ten artykuł!”

Dla tych, którzy nadal nie rozumieją w czym tkwi problem, oto on:


A tu było napisane:

W każdym razie w systemie Windows do 10 kodowanie BAT i innych języków nie wykorzystuje kodowania obsługującego Twój język, więc wszystkie rosyjskie znaki zostaną zapisane niepoprawnie.

1. Konfigurowanie konsoli w pliku wsadowym

Dla tych, którzy piszą chcp 1251, lepiej napisać to:

Assoc.bat=.mp4
Pierwszym sposobem rozwiązania problemu jest Notepad++. Aby to zrobić, musisz otworzyć plik wsadowy w następujący sposób:

Nie bój się, kod pliku wsadowego otworzy się i będziesz musiał wykonać następujące czynności:

Jeśli wszystko inne zawiedzie, przekonwertuj na UTF-8 bez BOM.

2. Pisanie programów konsolowych
Często ludzie piszą programy konsolowe (ponieważ na niektórych nie można pisać programów komputerowych), a kodowanie jest częstym problemem.

Pierwszą metodą jest bezpośrednio Notepad++, ale co, jeśli potrzebujesz najpierw jednego kodowania, a potem drugiego?

Dla tych, którzy używają chcp 1251, natychmiast napisz to:

Del C:\Program Data echo Mne pofig pauza
Drugim sposobem jest napisanie programu komputerowego lub użycie Visual Studio. Jeśli to nie pomoże, pierwsza rzecz: zmiana kodowania wyjściowego (przykład w C++).

#włączać #włączać int main() ( SetConsoleCP(numer_kodowania); SetConsoleOutputCP(numer_kodowania); )
Jeśli to nie zadziała:

#włączać //Nie zapomnij o bibliotece Math. char bufRus; char* Rus(const char* tekst) ( CharToOem(tekst, bufRus); return bufRus ) int main ( cout<< "Тут пишите, что угодно!" << endl; system("pause") return 0 }
3. Zmień chcp 1251
Jeśli masz plik body to napisz na początku:

Chcp 1251 >nul for /f "delims=" %%A in („Mój tekst”) do >nul chcp 866& echo.%%A
Teraz będziemy mieli normalne wyjście na konsolę. W innych językach (C++):

SetConsoleOutputCP(1251) //Tutaj dodajesz pętlę znajdującą się w pliku wsadowym
4. Uczyń życie miodem
Korzystając z tej metody, nie będziesz mógł:

  • Twórz aplikacje w systemie Windows poniżej 10
  • Uratuj świat przed tym problemem
  • Pomyśl o innych ludziach
  • Twórz aplikacje desktopowe, bo życie będzie ci przypominać miód
  • Zmień system Windows na wersję niższą niż 10
  • Cóż, zrozum ludzi, którzy mają Windowsa poniżej 10
Zainstaluj system Windows 10. Tam kodowanie konsoli jest specjalnie dostosowane do języka kraju i nie będziesz już musiał się martwić tym problemem. Ale będziesz miał jeszcze 6 problemów i nie będziesz mógł wrócić do poprzedniej licencjonowanej wersji systemu Windows.

Tagi: nietoperz, kodowanie, abrakadabra, witajcie tagreaders, tagspam, problem z kodowaniem, jak zmienić kodowanie, ahh wszyscy umrzemy

Witam, drodzy czytelnicy bloga. Dziś porozmawiamy z Wami o tym, skąd biorą się krakozyabry na stronie internetowej i w programach, jakie istnieją kodowania tekstu i jakie należy stosować. Przyjrzyjmy się bliżej historii ich rozwoju, zaczynając od podstawowego ASCII, a także jego rozszerzonych wersji CP866, KOI8-R, Windows 1251, a kończąc na nowoczesnych kodowaniach konsorcjum Unicode UTF 16 i 8.

Niektórym ta informacja może wydawać się zbędna, ale czy wiecie, ile otrzymuję pytań dotyczących pełzających krakozyabrów (nieczytelny zestaw znaków). Teraz będę miał okazję odesłać wszystkich do tekstu tego artykułu i znaleźć własne błędy. Cóż, przygotuj się na przyswojenie informacji i staraj się podążać za biegiem historii.

ASCII - podstawowe kodowanie tekstu dla alfabetu łacińskiego

Rozwój kodowania tekstu nastąpił jednocześnie z powstaniem branży IT i w tym czasie udało się jej przejść całkiem sporo zmian. Historycznie rzecz biorąc, wszystko zaczęło się od dość dysonansowego w rosyjskiej wymowie EBCDIC, który umożliwił kodowanie liter alfabetu łacińskiego, cyfr arabskich i znaków interpunkcyjnych ze znakami kontrolnymi.

Mimo to za punkt wyjścia dla rozwoju współczesnego kodowania tekstu należy uznać sławny ASCII(Amerykański standardowy kodeks wymiany informacji, który w języku rosyjskim zwykle wymawia się jako „zapytaj”). Opisuje pierwsze 128 znaków najczęściej używanych przez użytkowników anglojęzycznych - litery łacińskie, cyfry arabskie i znaki interpunkcyjne.

Te 128 znaków opisanych w kodzie ASCII zawierało także niektóre znaki usługowe, takie jak nawiasy, znaki krzyżyka, gwiazdki itp. W rzeczywistości możesz je zobaczyć sam:

To właśnie te 128 znaków z oryginalnej wersji ASCII stało się standardem i w każdym innym kodowaniu na pewno je znajdziesz i pojawią się w tej kolejności.

Ale faktem jest, że jednym bajtem informacji można zakodować nie 128, a aż 256 różnych wartości (dwa do potęgi ósmej równa się 256), zatem po podstawowej wersji Asuki cała seria rozszerzone kodowanie ASCII, w którym oprócz 128 znaków podstawowych możliwe było także zakodowanie symboli kodowania narodowego (np. rosyjskiego).

W tym miejscu warto chyba powiedzieć nieco więcej o systemach liczbowych zastosowanych w opisie. Po pierwsze, jak wszyscy wiecie, komputer działa tylko z liczbami w systemie dwójkowym, czyli zerami i jedynkami („algebra Boole’a”, jeśli ktoś to miał w instytucie lub szkole). , z których każdy jest dwójką do potęgi, zaczynając od zera i aż do dwójki do siódmej:

Nietrudno zrozumieć, że wszystkie możliwe kombinacje zer i jedynek w takim projekcie mogą wynosić tylko 256. Konwersja liczby z systemu binarnego na system dziesiętny jest dość prosta. Wystarczy dodać wszystkie potęgi dwójki do potęgi dwójki znajdującej się nad nimi.

W naszym przykładzie okazuje się, że to jest 1 (2 do potęgi zera) plus 8 (dwa do potęgi 3), plus 32 (dwa do potęgi piątej), plus 64 (do potęgi szóstej) plus 128 (do potęgi siódmej). Suma wynosi 233 w zapisie dziesiętnym. Jak widać, wszystko jest bardzo proste.

Ale jeśli przyjrzysz się uważnie tabeli ze znakami ASCII, zobaczysz, że są one reprezentowane w kodowaniu szesnastkowym. Na przykład „gwiazdka” odpowiada liczbie szesnastkowej 2A w języku Aski. Zapewne wiesz, że w systemie liczb szesnastkowych oprócz cyfr arabskich używane są także litery łacińskie od A (oznacza dziesięć) do F (oznacza piętnaście).

No cóż, dla konwersja liczby binarnej na szesnastkową zastosuj następującą prostą i oczywistą metodę. Każdy bajt informacji jest podzielony na dwie części po cztery bity, jak pokazano na powyższym zrzucie ekranu. To. W każdym półbajcie można zakodować tylko szesnaście wartości (dwa do potęgi czwartej) w formacie binarnym, co można łatwo przedstawić w postaci liczby szesnastkowej.

Co więcej, w lewej połowie bajtu stopnie będą musiały zostać policzone ponownie, zaczynając od zera, a nie jak pokazano na zrzucie ekranu. W rezultacie, poprzez proste obliczenia, otrzymujemy, że na zrzucie ekranu zakodowana jest liczba E9. Mam nadzieję, że tok mojego rozumowania i rozwiązanie tej zagadki były dla Państwa jasne. Cóż, teraz kontynuujmy rozmowę o kodowaniu tekstu.

Rozszerzone wersje Asuki - kodowanie CP866 i KOI8-R z pseudografiką

Zaczęliśmy więc rozmawiać o ASCII, który był niejako punktem wyjścia dla rozwoju wszystkich współczesnych kodowań (Windows 1251, Unicode, UTF 8).

Początkowo zawierał tylko 128 znaków alfabetu łacińskiego, cyfry arabskie i coś jeszcze, ale w wersji rozszerzonej stało się możliwe wykorzystanie wszystkich 256 wartości, które można zakodować w jednym bajcie informacji. Te. Do Ask'a stało się możliwe dodawanie symboli liter Twojego języka.

W tym miejscu będziemy musieli ponownie zrobić dygresję, aby wyjaśnić - dlaczego w ogóle potrzebujemy kodowania? teksty i dlaczego jest to takie ważne. Znaki na ekranie Twojego komputera powstają w oparciu o dwie rzeczy - zbiory form wektorowych (reprezentacje) różnych znaków (znajdują się w plikach z ) oraz kod pozwalający wyciągnąć z tego zestawu form wektorowych (plik czcionek ) dokładnie ten znak, który należy wstawić we właściwe miejsce.

Oczywiste jest, że same czcionki odpowiadają za kształty wektorowe, ale system operacyjny i użyte w nim programy odpowiadają za kodowanie. Te. dowolny tekst na twoim komputerze będzie zbiorem bajtów, z których każdy koduje jeden znak tego właśnie tekstu.

Program wyświetlający ten tekst na ekranie (edytor tekstu, przeglądarka itp.) podczas analizy kodu odczytuje kodowanie kolejnego znaku i szuka odpowiedniej postaci wektorowej w wymaganym pliku czcionki, który jest podłączony do wyświetlenia tego dokument tekstowy. Wszystko jest proste i banalne.

Oznacza to, że aby zakodować dowolny potrzebny nam znak (np. z alfabetu narodowego) muszą zostać spełnione dwa warunki - postać wektorowa tego znaku musi być w użytej czcionce oraz znak ten mógłby być zakodowany w rozszerzonym kodowaniu ASCII w jeden bajt. Dlatego istnieje cała gama takich opcji. Tylko do kodowania znaków języka rosyjskiego istnieje kilka odmian rozszerzonej Aska.

Na przykład pierwotnie pojawił się CP866, który miał możliwość używania znaków alfabetu rosyjskiego i był rozszerzoną wersją ASCII.

Te. jego górna część całkowicie pokrywała się z podstawową wersją Aski (128 znaków łacińskich, cyfr i inne badziewia), co widać na zrzucie ekranu tuż powyżej, natomiast dolna część tabeli z kodowaniem CP866 miała wygląd pokazany na zrzucie ekranu tuż poniżej i umożliwił zakodowanie kolejnych 128 znaków (litery rosyjskie i wszelkiego rodzaju pseudografiki):

Widzisz, w prawej kolumnie liczby zaczynają się od 8, ponieważ... liczby od 0 do 7 odnoszą się do podstawowej części ASCII (patrz pierwszy zrzut ekranu). To. rosyjska litera „M” w CP866 będzie miała kod 9C (znajduje się na przecięciu odpowiedniego wiersza z 9 i kolumny z liczbą C w systemie liczb szesnastkowych), który można zapisać w jednym bajcie informacji, oraz jeśli istnieje odpowiednia czcionka z rosyjskimi znakami, litera ta bez problemów pojawi się w tekście.

Skąd wzięła się ta kwota? pseudografika w CP866? Rzecz w tym, że to kodowanie tekstu rosyjskiego zostało opracowane w tych kudłatych latach, kiedy graficzne systemy operacyjne nie były tak rozpowszechnione jak obecnie. A w Dosie i podobnych tekstowych systemach operacyjnych pseudografiki pozwoliły przynajmniej w jakiś sposób urozmaicić konstrukcję tekstów, dlatego też CP866 i wszyscy inni jego rówieśnicy z kategorii rozszerzonych wersji Asuki są w nim obfitowani.

CP866 był dystrybuowany przez IBM, ale oprócz tego opracowano szereg kodowań dla znaków języka rosyjskiego, na przykład można przypisać ten sam typ (rozszerzony ASCII) KOI8-R:

Zasada jego działania pozostaje taka sama jak opisanego nieco wcześniej CP866 – każdy znak tekstu kodowany jest jednym bajtem. Zrzut ekranu pokazuje drugą połowę stołu KOI8-R, ponieważ pierwsza połowa jest całkowicie zgodna z podstawową Asuką, co pokazano na pierwszym zrzucie ekranu w tym artykule.

Wśród cech kodowania KOI8-R można zauważyć, że rosyjskie litery w jego tabeli nie są ułożone w kolejności alfabetycznej, jak miało to miejsce na przykład w CP866.

Jeśli spojrzysz na pierwszy zrzut ekranu (podstawowej części, która jest zawarta we wszystkich rozszerzonych kodowaniach), zauważysz, że w KOI8-R rosyjskie litery znajdują się w tych samych komórkach tabeli, co odpowiadające im litery alfabetu łacińskiego z pierwszej części tabeli. Dokonano tego dla wygody przełączania ze znaków rosyjskich na znaki łacińskie poprzez odrzucenie tylko jednego bitu (dwa do potęgi siódmej, czyli 128).

Windows 1251 - nowoczesna wersja ASCII i dlaczego pojawiają się pęknięcia

Dalszy rozwój kodowania tekstu wynikał z faktu, że graficzne systemy operacyjne zyskiwały na popularności i z czasem zanikła w nich konieczność stosowania pseudografiki. W rezultacie powstała cała grupa, która w istocie nadal była rozszerzoną wersją Asuki (jeden znak tekstu jest kodowany tylko jednym bajtem informacji), ale bez użycia symboli pseudograficznych.

Należały do ​​tak zwanych kodowań ANSI, które zostały opracowane przez American Standards Institute. W potocznym języku nazwa cyrylica była również używana dla wersji obsługującej język rosyjski. Przykładem może być.

Różnił się on korzystnie od stosowanych wcześniej CP866 i KOI8-R tym, że miejsce w nim symboli pseudograficznych zajęły brakujące symbole typografii rosyjskiej (z wyjątkiem znaku akcentu), a także symbole używane w językach słowiańskich zbliżonych do Rosyjski (ukraiński, białoruski itp.):

Z powodu takiej obfitości kodowania języka rosyjskiego producenci czcionek i producenci oprogramowania nieustannie mieli bóle głowy, a ty i ja, drodzy czytelnicy, często cierpieliśmy na to samo krakozyabry gdy doszło do zamieszania w związku z wersją zastosowaną w tekście.

Bardzo często pojawiały się podczas wysyłania i odbierania wiadomości e-mailem, co wiązało się z tworzeniem bardzo skomplikowanych tabel przeliczeniowych, które w rzeczywistości nie mogły zasadniczo rozwiązać tego problemu, a użytkownicy często korzystali z korespondencji, aby uniknąć notorycznych sztuczek podczas korzystania Rosyjskie kodowania, takie jak CP866, KOI8-R lub Windows 1251.

W rzeczywistości pęknięcia pojawiające się zamiast tekstu rosyjskiego były wynikiem nieprawidłowego użycia kodowania tego języka, które nie odpowiadało temu, w jakim oryginalnie zakodowano wiadomość tekstową.

Załóżmy, że jeśli spróbujesz wyświetlić znaki zakodowane przy użyciu CP866 przy użyciu tabeli kodów Windows 1251, to wyjdzie ten sam bełkot (bezsensowny zestaw znaków), całkowicie zastępując tekst wiadomości.

Podobna sytuacja bardzo często ma miejsce na forach czy blogach, gdy tekst z rosyjskimi znakami jest omyłkowo zapisywany w złym kodowaniu, które jest domyślnie używane na stronie, lub w złym edytorze tekstu, co dodaje do kodu niewidoczne gagi. gołym okiem.

W końcu wiele osób zmęczyło się tą sytuacją z dużą ilością kodowań i ciągle wypełzającymi oszustami, i pojawiły się przesłanki do stworzenia nowej uniwersalnej odmiany, która zastąpiłaby wszystkie istniejące i ostatecznie rozwiązałaby problem z wyglądem nieczytelnych tekstów. Ponadto pojawił się problem języków takich jak chiński, w których znaków językowych było znacznie więcej niż 256.

Unicode - uniwersalne kodowanie UTF 8, 16 i 32

Tych tysięcy znaków grupy języków Azji Południowo-Wschodniej nie da się opisać w jednym bajcie informacji przeznaczonym do kodowania znaków w rozszerzonych wersjach ASCII. W rezultacie powstało konsorcjum pod nazwą Unikod(Unicode - Konsorcjum Unicode) przy współpracy wielu liderów branży IT (producentów oprogramowania, kodujących sprzęt, tworzących czcionki), którzy byli zainteresowani pojawieniem się uniwersalnego kodowania tekstu.

Pierwszą odmianą wydaną pod auspicjami Konsorcjum Unicode była UTF32. Liczba w nazwie kodowania oznacza liczbę bitów używanych do zakodowania jednego znaku. 32 bity to 4 bajty informacji, które będą potrzebne do zakodowania jednego znaku w nowym uniwersalnym kodowaniu UTF.

W rezultacie ten sam plik z tekstem zakodowanym w rozszerzonej wersji ASCII i w UTF-32, w tym drugim przypadku, będzie miał czterokrotnie większy rozmiar (wagę). To źle, ale teraz mamy możliwość zakodowania za pomocą YTF liczby znaków równej dwa do potęgi trzydziestej drugiej ( miliardy znaków, który pokryje każdą naprawdę potrzebną wartość z kolosalnym marginesem).

Ale wiele krajów z językami grupy europejskiej w ogóle nie musiało używać tak dużej liczby znaków w kodowaniu, jednak przy użyciu UTF-32 bez powodu otrzymały czterokrotny wzrost wagi dokumentów tekstowych, a co za tym idzie wzrost wolumenu ruchu internetowego i ilości przechowywanych danych. To dużo i nikogo nie stać na takie marnotrawstwo.

W wyniku rozwoju Unicode, UTF-16, który okazał się na tyle udany, że został domyślnie przyjęty jako przestrzeń bazowa dla wszystkich używanych przez nas znaków. Do zakodowania jednego znaku używa dwóch bajtów. Zobaczmy jak ta sprawa wygląda.

W systemie operacyjnym Windows możesz podążać ścieżką „Start” - „Programy” - „Akcesoria” - „Narzędzia systemowe” - „Tabela znaków”. W rezultacie otworzy się tabela z kształtami wektorowymi wszystkich czcionek zainstalowanych w systemie. Jeśli w „Opcjach zaawansowanych” wybierzesz zestaw znaków Unicode, będziesz mógł zobaczyć dla każdej czcionki osobno cały zakres zawartych w niej znaków.

Nawiasem mówiąc, klikając dowolny z nich, możesz zobaczyć jego dwubajt kod w formacie UTF-16, składający się z czterech cyfr szesnastkowych:

Ile znaków można zakodować w formacie UTF-16 przy użyciu 16 bitów? 65 536 (dwa do potęgi szesnastej) i to jest liczba, która została przyjęta jako przestrzeń bazowa w Unicode. Ponadto istnieją sposoby na zakodowanie przy jego użyciu około dwóch milionów znaków, ale były one ograniczone do rozszerzonej przestrzeni miliona znaków tekstu.

Ale nawet ta udana wersja kodowania Unicode nie przyniosła wiele satysfakcji tym, którzy pisali, powiedzmy, programy tylko w języku angielskim, ponieważ dla nich po przejściu z rozszerzonej wersji ASCII na UTF-16 waga dokumentów podwoiła się ( jeden bajt na znak w Aski i dwa bajty na ten sam znak w YUTF-16).

Właśnie po to, aby zadowolić wszystkich i wszystko w konsorcjum Unicode, zdecydowano się wymyślić kodowanie o zmiennej długości. Nazywał się UTF-8. Pomimo ósemki w nazwie tak naprawdę ma zmienną długość, tj. Każdy znak tekstu można zakodować w sekwencji o długości od jednego do sześciu bajtów.

W praktyce UTF-8 wykorzystuje jedynie zakres od jednego do czterech bajtów, ponieważ poza czterema bajtami kodu nie da się już nawet teoretycznie wyobrazić sobie niczego. Wszystkie zawarte w nim znaki łacińskie są zakodowane w jednym bajcie, tak jak w starym, dobrym ASCII.

Co ciekawe, w przypadku kodowania wyłącznie alfabetu łacińskiego, nawet te programy, które nie rozumieją Unicode, i tak przeczytają to, co jest zakodowane w YTF-8. Te. podstawowa część Asuki została po prostu przeniesiona do tego stworzenia konsorcjum Unicode.

Znaki cyrylicy w UTF-8 są kodowane w dwóch bajtach, a na przykład znaki gruzińskie są kodowane w trzech bajtach. Konsorcjum Unicode po stworzeniu UTF 16 i 8 rozwiązało główny problem - teraz mamy czcionki mają pojedynczą przestrzeń kodową. A teraz ich producenci mogą wypełniać je jedynie wektorowymi formami znaków tekstowych, w oparciu o ich mocne strony i możliwości. Teraz występują nawet w zestawach.

W powyższej „Tabeli znaków” widać, że różne czcionki obsługują różną liczbę znaków. Niektóre czcionki bogate w Unicode mogą być dość ciężkie. Ale teraz różnią się nie tym, że zostały stworzone dla różnych kodowań, ale tym, że producent czcionek wypełnił lub nie całkowicie wypełnił przestrzeń pojedynczego kodu określonymi formami wektorowymi.

Szalone słowa zamiast rosyjskich liter - jak temu zaradzić

Zobaczmy teraz, jak pojawiają się krakozyabry zamiast tekstu, czyli innymi słowy, jak wybierane jest prawidłowe kodowanie tekstu rosyjskiego. Właściwie jest to ustawione w programie, w którym tworzysz lub edytujesz ten sam tekst, lub kodujesz za pomocą fragmentów tekstu.

Do edycji i tworzenia plików tekstowych osobiście używam, moim zdaniem, bardzo dobrego pliku . Może jednak podkreślać składnię setek innych języków programowania i znaczników, a także ma możliwość rozszerzenia za pomocą wtyczek. Przeczytaj szczegółową recenzję tego wspaniałego programu pod podanym linkiem.

W górnym menu Notepad++ znajduje się pozycja „Kodowanie”, w której będziesz mieć możliwość konwersji istniejącej opcji na tę używaną domyślnie w Twojej witrynie:

W przypadku strony na Joomla 1.5 i nowszych oraz w przypadku bloga na WordPressie należy wybrać opcję uniknięcia pojawienia się pęknięć UTF 8 bez BOM-u. Jaki jest przedrostek BOM?

Faktem jest, że kiedy opracowywali kodowanie YUTF-16, z jakiegoś powodu postanowili dołączyć do niego coś takiego, jak możliwość zapisu kodu znaku zarówno w kolejności bezpośredniej (na przykład 0A15), jak i odwrotnie (150A) . Aby programy mogły dokładnie zrozumieć, w jakiej kolejności czytać kody, wynaleziono je BOM(znacznik kolejności bajtów, czyli inaczej podpis), który wyrażał się poprzez dodanie trzech dodatkowych bajtów na samym początku dokumentów.

W kodowaniu UTF-8 w konsorcjum Unicode nie przewidziano żadnych BOM-ów, dlatego dodanie podpisu (tych notorycznie dodatkowych trzech bajtów na początku dokumentu) po prostu uniemożliwia niektórym programom odczytanie kodu. Dlatego zapisując pliki w formacie UTF musimy zawsze wybrać opcję bez BOM (bez podpisu). Więc jesteś z wyprzedzeniem chroń się przed pełzającymi krakozyabrami.

Co ciekawe, niektóre programy w systemie Windows nie mogą tego zrobić (nie mogą zapisywać tekstu w UTF-8 bez BOM), na przykład ten sam notoryczny Notatnik Windows. Zapisuje dokument w UTF-8, ale nadal dodaje podpis (trzy dodatkowe bajty) na jego początku. Co więcej, te bajty będą zawsze takie same - czytaj kod w bezpośredniej kolejności. Ale na serwerach z powodu tej drobnostki może pojawić się problem - wyjdą oszuści.

Dlatego pod żadnym pozorem Nie używaj zwykłego notatnika Windows do edycji dokumentów na Twojej stronie, jeśli nie chcesz, aby pojawiły się jakieś pęknięcia. Wspomniany już edytor Notepad++ uważam za najlepszą i najprostszą opcję, która praktycznie nie ma wad, a składa się wyłącznie z zalet.

W Notepad++ po wybraniu kodowania będziesz mieć możliwość konwersji tekstu na kodowanie UCS-2, które jest z natury bardzo zbliżone do standardu Unicode. Również w Notatniku możliwe będzie kodowanie tekstu w ANSI, tj. w odniesieniu do języka rosyjskiego będzie to Windows 1251, o którym pisaliśmy już tuż powyżej. Skąd pochodzą te informacje?

Jest on zarejestrowany w rejestrze Twojego systemu operacyjnego Windows – jakie kodowanie wybrać w przypadku ANSI, jakie wybrać w przypadku OEM (dla języka rosyjskiego będzie to CP866). Jeśli ustawisz na swoim komputerze inny język domyślny, kodowania te zostaną zastąpione podobnymi z kategorii ANSI lub OEM dla tego samego języka.

Po zapisaniu dokumentu w Notepad++ w potrzebnym kodowaniu lub otwarciu dokumentu ze strony internetowej do edycji, jego nazwę możesz zobaczyć w prawym dolnym rogu edytora:

Aby uniknąć wieśniaków Oprócz działań opisanych powyżej przydatne będzie zapisanie informacji o tym kodowaniu w nagłówku kodu źródłowego wszystkich stron witryny, aby nie było zamieszania na serwerze lub hoście lokalnym.

Ogólnie rzecz biorąc, wszystkie języki znaczników hipertekstowych z wyjątkiem HTML używają specjalnej deklaracji XML, która określa kodowanie tekstu.

Przed analizą kodu przeglądarka wie, która wersja jest używana i jak dokładnie musi interpretować kody znaków tego języka. Warto jednak zauważyć, że jeśli zapiszesz dokument w domyślnym Unicode, wówczas tę deklarację XML można pominąć (kodowanie zostanie uznane za UTF-8, jeśli nie ma BOM lub UTF-16, jeśli jest BOM).

W przypadku dokumentu w języku HTML do wskazania służy kodowanie Element meta, który jest zapisany pomiędzy otwierającym i zamykającym tagiem Head:

... ...

Wpis ten różni się znacznie od przyjętego w, ale jest w pełni zgodny z nowym, stopniowo wprowadzanym standardem HTML 5 i będzie w pełni poprawnie zrozumiały przez każdą aktualnie używaną przeglądarkę.

Teoretycznie lepiej byłoby umieścić element Meta wskazujący kodowanie dokumentu HTML możliwie najwyżej w nagłówku dokumentu tak, aby w momencie napotkania w tekście pierwszego znaku spoza podstawowego ANSI (które zawsze są odczytywane poprawnie i w dowolnej odmianie) przeglądarka powinna już posiadać informację jak interpretować kody tych znaków.

Powodzenia! Do zobaczenia wkrótce na stronach bloga

Możesz być zainteresowany

Czym są adresy URL i czym różnią się linki bezwzględne i względne do witryny?
OpenServer - nowoczesny serwer lokalny i przykład jego wykorzystania do instalacji WordPressa na komputerze
Co to jest Chmod, jakie uprawnienia nadawać plikom i folderom (777, 755, 666) i jak to zrobić poprzez PHP
Wyszukiwanie Yandex według witryny i sklepu internetowego

Krakozyabry- Jakie słowo jest interesujące? To słowo jest zwykle używane przez rosyjskich użytkowników do opisania nieprawidłowego/nieprawidłowego wyświetlania (kodowania) znaków w programach lub samym systemie operacyjnym.
Dlaczego tak się dzieje? Nie znajdziesz jednoznacznej odpowiedzi. Może to wynikać z sztuczek naszych „ulubionych” wirusów, być może z powodu nieprawidłowego działania systemu operacyjnego Windows (na przykład zgasł prąd i komputer się wyłączył), być może program stworzył konflikt z innym systemem operacyjnym i wszystko poszło pogmatwany. Ogólnie rzecz biorąc, powodów może być wiele, ale najciekawsza z nich to: „Po prostu tak się zepsuło”.
Przeczytaj artykuł i dowiedz się, jak rozwiązać problem z kodowaniem w programach i systemie operacyjnym Windows, gdy już wystąpi.

Dla tych, którzy nadal nie rozumieją, o co mi chodzi, oto kilka:


Swoją drogą też kiedyś znalazłem się w takiej sytuacji i do dziś mam na pulpicie plik, który pomógł mi sobie z tym poradzić. Dlatego zdecydowałem się napisać ten artykuł.

Za wyświetlanie kodowania (czcionki) w systemie Windows odpowiada kilka „rzeczy” – język, rejestr i pliki samego systemu operacyjnego. Teraz sprawdzimy je osobno i punkt po punkcie.

Jak usunąć i poprawić krakozyabry zamiast rosyjskich (rosyjskie litery) w programie lub systemie Windows.

1. Sprawdzamy zainstalowany język pod kątem programów, które nie obsługują Unicode. Może to już dla ciebie stracone.

Podążajmy więc ścieżką: Panel sterowania – Opcje regionalne i językowe – zakładka Zaawansowane
Tam upewniamy się, że językiem jest rosyjski.


W Windows XP dodatkowo na dole znajduje się lista „stron kodowych tabeli konwersji”, w której znajduje się linia z numerem 20880. Tam też powinien być Rosjanin

6. Ostatni punkt, w którym oddaję Wam plik, który pomógł mi kiedyś wszystko naprawić i dlatego zostawiłem go na pamiątkę. Oto archiwum:

Wewnątrz znajdują się dwa pliki: krakozbroff.cmd i krakozbroff.reg

Mają tę samą zasadę - poprawiaj hieroglify, kwadraty, pytania lub wykrzykniki w programach i systemie operacyjnym Windows (w potocznym języku) krakozyabry). Ja stosowałem ten pierwszy i mi pomógł.

I na koniec kilka wskazówek:
1) Jeśli pracujesz z rejestrem, nie zapomnij wykonać kopii zapasowej (kopii zapasowej) na wypadek, gdyby coś poszło nie tak.
2) Wskazane jest sprawdzenie pierwszego punktu po każdym punkcie.

To wszystko. Teraz wiesz, jak naprawić/usunąć krakersy (kwadraty, hieroglify, wykrzykniki i znaki zapytania) w programie lub systemie Windows.

MS Word jest zasłużenie najpopularniejszym edytorem tekstu. W związku z tym najczęściej napotkasz dokumenty w formacie tego konkretnego programu. Jedyne, co może się w nich różnić, to tylko wersja programu Word i format pliku (DOC lub DOCX). Jednak pomimo ogólności mogą pojawić się problemy z otwarciem niektórych dokumentów.

Co innego, jeśli plik programu Word w ogóle się nie otwiera lub jest uruchamiany w trybie ograniczonej funkcjonalności, a co innego, kiedy się otwiera, gdy większość lub nawet wszystkie znaki w dokumencie są nieczytelne. Oznacza to, że zamiast zwykłej i zrozumiałej cyrylicy lub alfabetu łacińskiego wyświetlane są niezrozumiałe znaki (kwadraty, kropki, znaki zapytania).

Jeśli napotkasz podobny problem, najprawdopodobniej jego przyczyną jest nieprawidłowe kodowanie pliku, a dokładniej jego zawartość tekstowa. W tym artykule porozmawiamy o tym, jak zmienić kodowanie tekstu w programie Word, dzięki czemu będzie on czytelny. Nawiasem mówiąc, zmiana kodowania może być również konieczna, aby uczynić dokument nieczytelnym lub, że tak powiem, „przekonwertować” kodowanie w celu dalszego wykorzystania zawartości tekstowej dokumentu Worda w innych programach.

Notatka: Ogólnie przyjęte standardy kodowania tekstu mogą się różnić w zależności od kraju. Jest całkiem możliwe, że dokument utworzony na przykład przez użytkownika mieszkającego w Azji i zapisany w lokalnym kodowaniu nie będzie poprawnie wyświetlany użytkownikowi w Rosji, który używa standardowej cyrylicy na komputerze PC i w programie Word.

Wszystkie informacje wyświetlane na ekranie komputera w formie tekstowej są tak naprawdę przechowywane w pliku Word w postaci wartości liczbowych. Wartości te są przez program konwertowane na wyświetlane znaki, dla których stosowane jest kodowanie.

Kodowanie— schemat numerowania, w którym każdemu znakowi tekstu ze zbioru odpowiada wartość liczbowa. Samo kodowanie może zawierać litery, cyfry, a także inne znaki i symbole. Osobno warto wspomnieć, że różne języki dość często używają różnych zestawów znaków, dlatego wiele kodowań jest zaprojektowanych wyłącznie do wyświetlania znaków określonych języków.

Wybór kodowania podczas otwierania pliku

Jeśli zawartość tekstowa pliku jest wyświetlana nieprawidłowo, na przykład z kwadratami, znakami zapytania i innymi symbolami, oznacza to, że program MS Word nie był w stanie określić jego kodowania. Aby rozwiązać ten problem, musisz określić prawidłowe (odpowiednie) kodowanie w celu zdekodowania (wyświetlenia) tekstu.

1. Otwórz menu "Plik"(przycisk „MS Office” poprzednio).

2. Otwórz sekcję „Opcje” i wybierz element "Dodatkowo".

3. Przewiń zawartość okna, aż znajdziesz odpowiednią sekcję "Ogólny". Zaznacz pole obok elementu „Potwierdź konwersję formatu pliku podczas otwierania”. Trzask "OK" zamknąć okno.

Notatka: Po zaznaczeniu pola obok tej opcji, przy każdorazowym otwarciu w programie Word pliku w formacie innym niż DOC, DOCX, DOCM, DOT, DOTM, DOTX wyświetli się okno dialogowe „Konwersja plików”. Jeśli często musisz pracować z dokumentami w innych formatach, ale nie musisz zmieniać ich kodowania, odznacz to pole w parametrach programu.

4. Zamknij plik i otwórz go ponownie.

5. W sekcji „Konwersja plików” wybierz element „Zakodowany tekst”.

6. W otwartym oknie dialogowym „Konwersja plików” umieść znacznik obok parametru "Inny". Wybierz wymagane kodowanie z listy.

    Rada: W oknie "Próbka" możesz zobaczyć, jak tekst będzie wyglądał w określonym kodowaniu.

7. Po wybraniu odpowiedniego kodowania zastosuj je. Teraz zawartość tekstowa dokumentu będzie wyświetlana poprawnie.

Jeśli cały tekst, dla którego wybierzesz kodowanie, wygląda prawie tak samo (na przykład w postaci kwadratów, kropek, znaków zapytania), najprawdopodobniej czcionka użyta w dokumencie, który próbujesz otworzyć, nie jest zainstalowana na Twoim komputerze . O tym, jak zainstalować czcionkę innej firmy w MS Word, możesz przeczytać w naszym artykule.

Wybór kodowania podczas zapisywania pliku

Jeśli podczas zapisywania nie określisz (nie wybierzesz) kodowania pliku MS Word, zostanie on automatycznie zapisany w formacie Unikod co w większości przypadków jest wystarczające. Ten typ kodowania obsługuje większość znaków i większość języków.

Jeśli Ty (lub ktoś inny) planujesz otworzyć dokument utworzony w programie Word w innym programie, który nie obsługuje Unicode, zawsze możesz wybrać wymagane kodowanie i zapisać w nim plik. Na przykład na komputerze z zrusyfikowanym systemem operacyjnym całkiem możliwe jest utworzenie dokumentu w tradycyjnym języku chińskim przy użyciu Unicode.

Jedynym problemem jest to, że jeśli ten dokument zostanie otwarty w programie obsługującym język chiński, ale nie obsługującym Unicode, bardziej poprawne byłoby zapisanie pliku w innym kodowaniu, na przykład “Chiński tradycyjny (Big5)”. W takim przypadku treść tekstowa dokumentu będzie wyświetlana poprawnie po otwarciu w dowolnym programie obsługującym język chiński.

Notatka: Ponieważ Unicode jest najpopularniejszym i po prostu rozbudowanym standardem wśród kodowań, podczas zapisywania tekstu w innych kodowaniach możliwe jest nieprawidłowe, niekompletne lub nawet całkowite wyświetlenie niektórych plików. Na etapie wyboru kodowania zapisu pliku nieobsługiwane znaki i symbole wyświetlane są na czerwono, dodatkowo wyświetla się powiadomienie z informacją o przyczynie.

1. Otwórz plik, którego kodowanie chcesz zmienić.

2. Otwórz menu "Plik"(przycisk „MS Office” wcześniej) i wybierz „Zapisz jako”. Jeśli to konieczne, określ nazwę pliku.

3. W sekcji „Typ pliku” wybierz opcję „Zwykły tekst”.

5. Wykonaj jedną z następujących czynności:

  • Aby użyć domyślnie ustawionego standardowego kodowania, zaznacz pole obok parametru „Windows (domyślny)”;
  • Aby wybrać kodowanie „MS-DOS” umieść znacznik naprzeciwko odpowiedniego przedmiotu;
  • Aby wybrać inne kodowanie należy umieścić znacznik obok elementu "Inny", aktywne stanie się okno z listą dostępnych kodowań, po czym będziesz mógł wybrać z listy żądane kodowanie.
  • Notatka: Jeśli przy wyborze jednego lub drugiego ( "Inny") kodowania, zobaczysz wiadomość „Tekst zaznaczony na czerwono nie może zostać poprawnie zapisany w wybranym kodowaniu.”, wybierz inne kodowanie (w przeciwnym razie zawartość pliku będzie wyświetlana niepoprawnie) lub zaznacz pole obok opcji „zezwól na zastępowanie znaków”.


    Jeżeli dozwolona jest zamiana znaków, wszystkie znaki, których nie można wyświetlić w wybranym kodowaniu, zostaną automatycznie zastąpione znakami równoważnymi. Na przykład wielokropek można zastąpić trzema kropkami, a cudzysłowy w narożnikach liniami prostymi.

    6. Plik zostanie zapisany w wybranym przez Ciebie kodowaniu jako zwykły tekst (format „TXT”).

    Właściwie to wszystko, teraz wiesz, jak zmienić kodowanie w programie Word, a także wiesz, jak je wybrać, jeśli zawartość dokumentu jest wyświetlana niepoprawnie.



    Jeśli zauważysz błąd, zaznacz fragment tekstu i naciśnij Ctrl+Enter
    UDZIAŁ: