JavaRush /Java-Blog /Random-DE /Textkodierung ASCII (Windows 1251, CP866, KOI8-R) und Uni...
articles
Level 15

Textkodierung ASCII (Windows 1251, CP866, KOI8-R) und Unicode (UTF 8, 16, 32) – So beheben Sie das Problem mit Crackern

Veröffentlicht in der Gruppe Random-DE
Heute sprechen wir darüber, woher Krakozyabrs auf einer Website und in Programmen kommen, welche Textkodierungen es gibt und welche verwendet werden sollten. Werfen wir einen genaueren Blick auf die Geschichte ihrer Entwicklung, beginnend mit dem Basis-ASCII sowie seinen erweiterten Versionen CP866, KOI8-R, Windows 1251 und endend mit den modernen Unicode-Konsortium-Kodierungen UTF 16 und 8. Textkodierung ASCII (Windows 1251, CP866, KOI8-R) und Unicode (UTF 8, 16, 32) – So beheben Sie das Problem mit Crackern – 1Inhaltsverzeichnis: Für einige mögen diese Informationen unnötig erscheinen, aber wissen Sie, wie viele Fragen ich speziell zu den kriechenden Krakozyabrs (unleserlicher Zeichensatz) erhalte? Jetzt habe ich die Gelegenheit, alle auf den Text dieses Artikels zu verweisen und meine eigenen Fehler zu finden. Machen Sie sich bereit, die Informationen aufzunehmen und versuchen Sie, dem Fluss der Geschichte zu folgen.

ASCII – grundlegende Textkodierung für das lateinische Alphabet

Die Entwicklung der Textkodierungen erfolgte zeitgleich mit der Entstehung der IT-Branche und erlebte in dieser Zeit viele Veränderungen. Historisch gesehen begann alles mit EBCDIC, das in der russischen Aussprache eher dissonant war und es ermöglichte, Buchstaben des lateinischen Alphabets, arabische Ziffern und Satzzeichen mit Steuerzeichen zu kodieren. Dennoch sollte der Ausgangspunkt für die Entwicklung moderner Textkodierungen der berühmte ASCII (American Standard Code for Information Interchange, der auf Russisch normalerweise als „Ask“ ausgesprochen wird) betrachtet werden. Es beschreibt die ersten 128 Zeichen, die von englischsprachigen Benutzern am häufigsten verwendet werden – lateinische Buchstaben, arabische Ziffern und Satzzeichen. Zu diesen 128 in ASCII beschriebenen Zeichen gehörten auch einige Dienstzeichen wie Klammern, Rauten, Sternchen usw. Tatsächlich können Sie sie selbst sehen: Textkodierung ASCII (Windows 1251, CP866, KOI8-R) und Unicode (UTF 8, 16, 32) – So beheben Sie das Problem mit Crackern – 2Es sind diese 128 Zeichen aus der Originalversion von ASCII, die zum Standard wurden, und in jeder anderen Kodierung werden Sie sie auf jeden Fall finden und sie werden in dieser Reihenfolge erscheinen. Fakt ist aber, dass man mit Hilfe eines Bytes an Informationen nicht 128, sondern bis zu 256 verschiedene Werte kodieren kann (zwei hoch acht ergibt 256), also nach der Basisversion von Asuka ein Ganzes Es erschien eine Reihe erweiterter ASCII-Kodierungen , bei denen es möglich war, zusätzlich zu den 128 Grundzeichen auch nationale Kodierungszeichen (z. B. Russisch) zu kodieren. An dieser Stelle lohnt es sich wahrscheinlich, etwas mehr über die Zahlensysteme zu sagen, die in der Beschreibung verwendet werden. Erstens, wie Sie alle wissen, funktioniert ein Computer nur mit Zahlen im Binärsystem, nämlich mit Nullen und Einsen („Boolesche Algebra“, falls jemand sie in einem Institut oder einer Schule gelernt hat). Ein Byte besteht aus acht Bits, von denen jedes eine Zwei hoch zwei darstellt, beginnend bei Null und bis zu zwei hoch sieben: Textkodierung ASCII (Windows 1251, CP866, KOI8-R) und Unicode (UTF 8, 16, 32) – So beheben Sie das Problem mit Crackern – 3 Es ist nicht schwer zu verstehen, dass alle möglichen Kombinationen von Nullen und Einsen in einer solchen Konstruktion dies können nur 256 sein. Die Konvertierung einer Zahl vom Binärsystem in eine Dezimalzahl ist ganz einfach. Sie müssen nur alle Zweierpotenzen mit den darüber liegenden Einsen addieren. In unserem Beispiel ergibt sich daraus 1 (2 hoch null) plus 8 (zwei hoch 3), plus 32 (zwei hoch fünf), plus 64 (sechste Potenz) plus 128 (zur siebten Potenz). Die Gesamtsumme beträgt 233 in Dezimalschreibweise. Wie Sie sehen, ist alles sehr einfach. Wenn Sie sich jedoch die Tabelle mit ASCII-Zeichen genau ansehen, werden Sie feststellen, dass diese in hexadezimaler Kodierung dargestellt werden. Beispielsweise entspricht „Sternchen“ der Hexadezimalzahl 2A in Aski. Sie wissen wahrscheinlich, dass im hexadezimalen Zahlensystem neben arabischen Ziffern auch lateinische Buchstaben von A (bedeutet zehn) bis F (bedeutet fünfzehn) verwendet werden. Nun, um eine Binärzahl in eine Hexadezimalzahl umzuwandelngreifen Sie auf die folgende einfache Methode zurück. Jedes Informationsbyte ist in zwei Teile zu je vier Bits unterteilt. Diese. In jedem Halbbyte können nur sechzehn Werte (zwei hoch vier) binär kodiert werden, was sich leicht als Hexadezimalzahl darstellen lässt. Darüber hinaus müssen in der linken Hälfte des Bytes die Gradzahlen erneut beginnend bei Null gezählt werden, und nicht wie im Screenshot gezeigt. Als Ergebnis erhalten wir, dass im Screenshot die Zahl E9 kodiert ist. Ich hoffe, dass Ihnen meine Überlegungen und die Lösung dieses Rätsels klar waren. Nun, lasst uns nun tatsächlich weiter über Textkodierungen sprechen.

Erweiterte Versionen von Asuka – CP866- und KOI8-R-Kodierungen mit Pseudografiken

Also begannen wir über ASCII zu sprechen, das sozusagen der Ausgangspunkt für die Entwicklung aller modernen Kodierungen (Windows 1251, Unicode, UTF 8) war. Anfangs enthielt es nur 128 Zeichen des lateinischen Alphabets, arabische Ziffern und etwas anderes, aber in der erweiterten Version wurde es möglich, alle 256 Werte zu verwenden, die in einem Informationsbyte kodiert werden können. Diese. Es wurde möglich, Buchstabensymbole Ihrer Sprache zu Aski hinzuzufügen. Hier müssen wir noch einmal abschweifen, um zu erklären, warum Textkodierungen überhaupt notwendig sind und warum sie so wichtig sind. Die Zeichen auf Ihrem Computerbildschirm werden auf der Grundlage von zwei Dingen gebildet: Sätzen von Vektorformen (Darstellungen) verschiedener Zeichen (sie befinden sich in Dateien mit Schriftarten, die auf Ihrem Computer installiert sind) und Code, der es Ihnen ermöglicht, genau dieses Zeichen herauszuziehen aus diesem Satz von Vektorformen (Schriftartdatei). Symbol, das an der richtigen Stelle eingefügt werden muss. Es ist klar, dass für die Vektorformen die Schriftarten selbst verantwortlich sind, für die Kodierung jedoch das Betriebssystem und die darin verwendeten Programme. Diese. Jeder Text auf Ihrem Computer besteht aus einer Reihe von Bytes, von denen jedes ein einzelnes Zeichen dieses Textes kodiert. Das Programm, das diesen Text auf dem Bildschirm anzeigt (Texteditor, Browser usw.), liest beim Parsen des Codes die Kodierung des nächsten Zeichens und sucht in der erforderlichen Schriftartdatei nach der entsprechenden Vektorform, die zur Anzeige dieses angeschlossen ist Text dokument. Alles ist einfach und banal. Das bedeutet, dass zum Kodieren eines beliebigen Zeichens, das wir benötigen (z. B. aus dem nationalen Alphabet), zwei Bedingungen erfüllt sein müssen: Die Vektorform dieses Zeichens muss in der verwendeten Schriftart vorliegen und dieses Zeichen könnte in erweiterten ASCII-Kodierungen kodiert werden in einem Byte. Daher gibt es eine ganze Reihe solcher Optionen. Für die Kodierung russischer Zeichen gibt es mehrere Varianten des erweiterten Aska. Beispielsweise erschien ursprünglich CP866 , das Zeichen des russischen Alphabets verwenden konnte und eine erweiterte Version von ASCII war. Das heißt, sein oberer Teil stimmte vollständig mit der Basisversion von Aska (128 lateinische Zeichen, Zahlen und anderer Mist) überein, die im Screenshot oben dargestellt ist, aber der untere Teil der Tabelle mit CP866-Kodierung hatte das im Bild angegebene Aussehen Screenshot direkt unten und erlaubt, weitere 128 Zeichen zu kodieren (russische Buchstaben und alle Arten von Pseudografiken): Textkodierung ASCII (Windows 1251, CP866, KOI8-R) und Unicode (UTF 8, 16, 32) – So beheben Sie das Problem mit Crackern – 4 Sie sehen, in der rechten Spalte beginnen die Zahlen mit 8, weil Zahlen von 0 bis 7 beziehen sich auf den Grundteil von ASCII (siehe erster Screenshot). Somit hat der kyrillische Buchstabe „M“ in CP866 den Code 9C (er befindet sich am Schnittpunkt der entsprechenden Zeile mit 9 und der Spalte mit der Zahl C im hexadezimalen Zahlensystem), der in einem Informationsbyte geschrieben werden kann , und wenn eine geeignete Schriftart mit russischen Zeichen vorhanden ist, erscheint dieser Buchstabe problemlos im Text. Woher kam dieser Betrag?Pseudografiken in CP866 ? Der springende Punkt ist, dass diese Kodierung für russischen Text bereits in jenen schäbigen Jahren entwickelt wurde, als grafische Betriebssysteme noch nicht so weit verbreitet waren wie heute. Und in Dosa und ähnlichen Textbetriebssystemen ermöglichten Pseudografiken zumindest eine gewisse Diversifizierung der Textgestaltung, und daher gibt es CP866 und alle seine anderen Kollegen aus der Kategorie der erweiterten Versionen von Asuka im Überfluss. CP866 wurde von IBM vertrieben, aber darüber hinaus wurden eine Reihe von Kodierungen für Zeichen der russischen Sprache entwickelt, zum Beispiel kann KOI8-R demselben Typ (erweitertes ASCII) zugeordnet werden : Textkodierung ASCII (Windows 1251, CP866, KOI8-R) und Unicode (UTF 8, 16, 32) – So beheben Sie das Problem mit Crackern – 5Das Funktionsprinzip bleibt das gleiche wie das des etwas früher beschriebenen CP866 – Jedes Textzeichen wird als ein einzelnes Byte kodiert. Der Screenshot zeigt die zweite Hälfte der KOI8-R-Tabelle, weil Die erste Hälfte entspricht vollständig dem grundlegenden Asuka, das im ersten Screenshot in diesem Artikel gezeigt wird. Zu den Merkmalen der KOI8-R-Kodierung gehört, dass die kyrillischen Buchstaben in ihrer Tabelle nicht in alphabetischer Reihenfolge vorliegen, wie dies in CP866 der Fall war. Wenn Sie sich den allerersten Screenshot (des Basisteils, der in allen erweiterten Kodierungen enthalten ist) ansehen, werden Sie feststellen, dass sich in KOI8-R russische Buchstaben in denselben Zellen der Tabelle befinden wie die entsprechenden Buchstaben des lateinischen Alphabets aus dem ersten Teil der Tabelle. Dies geschah, um den Wechsel von russischen zu lateinischen Zeichen zu erleichtern, indem nur ein Bit (zwei hoch siebte Potenz oder 128) verworfen wurde.

Windows 1251 – die moderne Version von ASCII und warum die Risse auftreten

Die Weiterentwicklung der Textkodierungen war darauf zurückzuführen, dass grafische Betriebssysteme immer beliebter wurden und die Notwendigkeit, darin Pseudografiken zu verwenden, mit der Zeit verschwand. Infolgedessen entstand eine ganze Gruppe, die im Wesentlichen immer noch erweiterte Versionen von Asuka waren (ein Textzeichen wird mit nur einem Byte an Informationen codiert), jedoch ohne die Verwendung pseudografischer Symbole. Sie gehörten zu den sogenannten ANSI-Kodierungen, die vom American Standards Institute entwickelt wurden. Im allgemeinen Sprachgebrauch wurde die Bezeichnung Kyrillisch auch für die Version mit russischer Sprachunterstützung verwendet. Ein Beispiel hierfür wäre Windows 1251 . Es unterschied sich positiv von den zuvor verwendeten CP866 und KOI8-R darin, dass die darin enthaltenen pseudografischen Symbole durch die fehlenden Symbole der russischen Typografie (mit Ausnahme des Akzentzeichens) sowie durch Symbole ersetzt wurden, die in slawischen Sprachen in der Nähe verwendet werden Russisch (Ukrainisch, Weißrussisch usw.): Textkodierung ASCII (Windows 1251, CP866, KOI8-R) und Unicode (UTF 8, 16, 32) – So beheben Sie das Problem mit Crackern – 6Aufgrund der Fülle an Kodierungen der russischen Sprache hatten Schrifthersteller und Softwarehersteller ständig Kopfschmerzen, und Sie und ich, liebe Leser, gerieten oft in Schwierigkeiten mit denselben berüchtigten Fehlern als es zu Verwechslungen mit der im Text verwendeten Version kam. Sehr oft traten sie beim Senden und Empfangen von Nachrichten per E-Mail auf, was die Erstellung sehr komplexer Konvertierungstabellen erforderte, die dieses Problem tatsächlich nicht grundsätzlich lösen konnten, und häufig verwendeten Benutzer für die Korrespondenz die Transliteration lateinischer Buchstaben Vermeiden Sie das berüchtigte Kauderwelsch, wenn Sie russische Kodierungen wie CP866, KOI8-R oder Windows 1251 verwenden. Tatsächlich waren die anstelle von russischem Text erscheinenden Risse das Ergebnis einer falschen Verwendung der Kodierung einer bestimmten Sprache, die nicht der in entsprach in dem die Textnachricht ursprünglich kodiert war. Nehmen wir an, wenn Sie versuchen, mit CP866 codierte Zeichen mithilfe der Windows 1251-Codetabelle anzuzeigen, wird derselbe Kauderwelsch (ein bedeutungsloser Satz von Zeichen) herauskommen und den Text der Nachricht vollständig ersetzen. Textkodierung ASCII (Windows 1251, CP866, KOI8-R) und Unicode (UTF 8, 16, 32) – So beheben Sie das Problem mit Crackern – 7Eine ähnliche Situation entsteht sehr oft beim Erstellen und Einrichten von Websites, Foren oder Blogs, wenn Texte mit russischen Zeichen fälschlicherweise in der falschen Kodierung gespeichert werden, die standardmäßig auf der Website verwendet wird, oder im falschen Texteditor, was einen unsichtbaren Witz hinzufügt mit bloßem Auge zum Code. Am Ende hatten viele Menschen genug von dieser Situation mit vielen Kodierungen und ständig schleichendem Mist, und die Voraussetzungen für die Schaffung einer neuen universellen Variante waren geschaffen, die alle bestehenden ersetzen und das Problem mit dem Auftreten unleserlicher Texte lösen würde . Hinzu kam das Problem von Sprachen wie Chinesisch, wo es deutlich mehr Sprachzeichen als 256 gab.

Unicode – universelle Kodierungen UTF 8, 16 und 32

Diese Tausenden von Zeichen der südostasiatischen Sprachgruppe könnten unmöglich in einem Informationsbyte beschrieben werden, das für die Kodierung von Zeichen in erweiterten Versionen von ASCII vorgesehen war. Infolgedessen wurde ein Konsortium namens Unicode (Unicode-Konsortium) in Zusammenarbeit mit vielen führenden IT-Branchen (Hersteller von Software, Hardware-Kodierung, Schriftarten) gegründet, die an der Entstehung einer universellen Textkodierung interessiert waren. Die erste unter der Schirmherrschaft des Unicode-Konsortiums veröffentlichte Variante war UTF 32 . Die Zahl im Codierungsnamen gibt die Anzahl der Bits an, die zum Codieren eines Zeichens verwendet werden. 32 Bits entsprechen 4 Bytes an Informationen, die benötigt werden, um ein einzelnes Zeichen in der neuen universellen UTF-Kodierung zu kodieren. Infolgedessen hat dieselbe Datei mit Text, der in der erweiterten Version von ASCII und im letzteren Fall in UTF-32 codiert ist, eine viermal größere Größe (Gewicht). Das ist schlecht, aber jetzt haben wir die Möglichkeit, mit UTF eine Anzahl von Zeichen zu kodieren, die zwei hoch zweiunddreißig Potenzen entspricht ( Milliarden von Zeichen , die jeden wirklich notwendigen Wert mit einem kolossalen Spielraum abdecken). Viele Länder mit Sprachen der europäischen Gruppe mussten jedoch überhaupt nicht so viele Zeichen bei der Kodierung verwenden, erhielten jedoch bei der Verwendung von UTF-32 ohne Grund eine Vervierfachung des Gewichts von Textdokumenten. und infolgedessen eine Zunahme des Internetverkehrsvolumens und der Menge der gespeicherten Daten. Das ist eine Menge, und niemand könnte sich solchen Abfall leisten. Als Ergebnis der Entwicklung von Unicode erschien UTF-16 , das sich als so erfolgreich erwies, dass es standardmäßig als Basisraum für alle von uns verwendeten Zeichen übernommen wurde. Es verwendet zwei Bytes, um ein Zeichen zu kodieren. Mal sehen, wie das Ding aussieht. Im Windows-Betriebssystem können Sie dem Pfad „Start“ – „Programme“ – „Zubehör“ – „Systemprogramme“ – „Zeichentabelle“ folgen. Als Ergebnis öffnet sich eine Tabelle mit den Vektorformen aller auf Ihrem System installierten Schriftarten. Wenn Sie in den „Erweiterten Optionen“ den Unicode-Zeichensatz auswählen, können Sie für jede Schriftart separat den gesamten darin enthaltenen Zeichenumfang sehen. Wenn Sie auf eine davon klicken, können Sie übrigens den Zwei-Byte- Code im UTF-16-Format sehen , der aus vier Hexadezimalziffern besteht: Textkodierung ASCII (Windows 1251, CP866, KOI8-R) und Unicode (UTF 8, 16, 32) – So beheben Sie das Problem mit Crackern – 8Wie viele Zeichen können in UTF-16 mit 16 Bit kodiert werden? 65.536 (zwei hoch sechzehn), und dies ist die Zahl, die als Basisraum in Unicode übernommen wurde. Darüber hinaus gibt es Möglichkeiten, etwa zwei Millionen Zeichen damit zu kodieren, diese waren jedoch auf einen erweiterten Textraum von einer Million Zeichen beschränkt. Aber selbst diese erfolgreiche Version der Unicode-Kodierung brachte denjenigen, die beispielsweise Programme nur auf Englisch schrieben, keine große Befriedigung, denn nach dem Übergang von der erweiterten Version von ASCII zu UTF-16 verdoppelte sich das Gewicht der Dokumente (ein Byte pro Byte). Zeichen in Aski und zwei Bytes für dasselbe Zeichen in YUTF-16). Gerade um alle und alles im Unicode-Konsortium zufrieden zu stellen, wurde beschlossen, eine Codierung mit variabler Länge zu entwickeln . Es hieß UTF-8. Trotz der Acht im Namen hat es tatsächlich eine variable Länge, d.h. Jedes Textzeichen kann in eine Sequenz mit einer Länge von ein bis sechs Bytes kodiert werden. In der Praxis nutzt UTF-8 nur den Bereich von einem bis vier Byte, denn jenseits von vier Byte Code ist theoretisch nichts mehr vorstellbar. Alle darin enthaltenen lateinischen Zeichen sind in einem Byte kodiert, genau wie im guten alten ASCII. Bemerkenswert ist, dass bei der Codierung nur des lateinischen Alphabets auch Programme, die Unicode nicht verstehen, immer noch lesen, was in YTF-8 codiert ist. Das heißt, der grundlegende Teil von Asuka wurde einfach auf diese Idee des Unicode-Konsortiums übertragen. Kyrillische Zeichen werden in UTF-8 in zwei Bytes kodiert, und georgische Zeichen werden beispielsweise in drei Bytes kodiert. Das Unicode-Konsortium hat nach der Erstellung von UTF 16 und 8 das Hauptproblem gelöst – jetzt haben wir einen einzigen Coderaum in unseren Schriftarten . Und jetzt können ihre Hersteller es nur noch mit Vektorformen von Textzeichen füllen, basierend auf ihren Stärken und Fähigkeiten. In der „Zeichentabelle“ oben können Sie sehen, dass verschiedene Schriftarten unterschiedliche Anzahlen von Zeichen unterstützen. Einige Unicode-reiche Schriftarten können ziemlich umfangreich sein. Nun unterscheiden sie sich jedoch nicht dadurch, dass sie für unterschiedliche Kodierungen erstellt wurden, sondern darin, dass der Schrifthersteller den einzelnen Coderaum mit bestimmten Vektorformen gefüllt oder nicht vollständig gefüllt hat.

Verrückte Wörter statt russischer Buchstaben – so beheben Sie das Problem

Sehen wir uns nun an, wie Krakozyabrs anstelle von Text angezeigt werden oder mit anderen Worten, wie die richtige Kodierung für russischen Text ausgewählt wird. Tatsächlich wird es in dem Programm festgelegt, in dem Sie genau diesen Text oder Code mithilfe von Textfragmenten erstellen oder bearbeiten. Zum Bearbeiten und Erstellen von Textdateien verwende ich persönlich einen meiner Meinung nach sehr guten HTML- und PHP-Editor Notepad++ . Es kann jedoch die Syntax von Hunderten anderer Programmier- und Auszeichnungssprachen hervorheben und ist außerdem mit Plugins erweiterbar. Eine ausführliche Rezension dieses wunderbaren Programms finden Sie unter dem angegebenen Link. Im oberen Menü von Notepad++ gibt es einen Punkt „Kodierungen“, wo Sie die Möglichkeit haben, eine vorhandene Option in die zu konvertieren, die standardmäßig auf Ihrer Site verwendet wird: Textkodierung ASCII (Windows 1251, CP866, KOI8-R) und Unicode (UTF 8, 16, 32) – So beheben Sie das Problem mit Crackern – 9Im Falle einer Site auf Joomla 1.5 und höher, z Ebenso wie bei einem Blog auf WordPress sollten Sie den Eindruck vermeiden, dass Krakozyabrov die Option UTF 8 ohne BOM wählt . Was ist das Stücklistenpräfix? Tatsache ist, dass sie bei der Entwicklung der YUTF-16-Kodierung aus irgendeinem Grund beschlossen haben, ihr so ​​etwas wie die Möglichkeit hinzuzufügen, den Zeichencode sowohl in direkter Reihenfolge (z. B. 0A15) als auch in umgekehrter Reihenfolge (150A) zu schreiben. . Und damit Programme verstehen, in welcher Reihenfolge sie die Codes lesen müssen, wurde die BOM (Byte Order Mark oder mit anderen Worten Signatur) erfunden, die durch das Hinzufügen von drei zusätzlichen Bytes am Anfang der Dokumente ausgedrückt wurde. Bei der UTF-8-Kodierung waren im Unicode-Konsortium keine Stücklisten vorgesehen, und daher verhindert das Hinzufügen einer Signatur (diese berüchtigten zusätzlichen drei Bytes am Anfang des Dokuments) lediglich, dass einige Programme den Code lesen können. Daher müssen wir beim Speichern von Dateien in UTF immer die Option ohne BOM (ohne Signatur) auswählen. So schützen Sie sich im Voraus vor dem Herauskriechen von Krakozyabrs . Bemerkenswert ist, dass einige Programme in Windows dies nicht können (sie können keinen Text in UTF-8 ohne Stückliste speichern), zum Beispiel derselbe berüchtigte Windows Notepad. Das Dokument wird in UTF-8 gespeichert, die Signatur (drei zusätzliche Bytes) wird jedoch am Anfang hinzugefügt. Darüber hinaus sind diese Bytes immer gleich – lesen Sie den Code in direkter Reihenfolge. Aber auf Servern kann aufgrund dieser Kleinigkeit ein Problem auftreten – Betrüger kommen heraus. Benutzen Sie daher auf keinen Fall den normalen Windows-Notizblock .um Dokumente auf Ihrer Website zu bearbeiten, wenn Sie nicht möchten, dass Risse entstehen. Ich halte den bereits erwähnten Notepad++-Editor für die beste und einfachste Option, die praktisch keine Nachteile hat und nur aus Vorteilen besteht. Wenn Sie in Notepad++ eine Kodierung auswählen, haben Sie die Möglichkeit, Text in die UCS-2-Kodierung zu konvertieren, die dem Unicode-Standard sehr nahe kommt. Auch im Notepad wird es möglich sein, Text in ANSI zu kodieren, d.h. In Bezug auf die russische Sprache wird dies Windows 1251 sein, das wir oben bereits beschrieben haben. Woher kommen diese Informationen? Es wird in der Registrierung Ihres Windows-Betriebssystems registriert – welche Kodierung Sie im Fall von ANSI wählen, welche im Fall von OEM (für die russische Sprache ist es CP866). Wenn Sie auf Ihrem Computer eine andere Standardsprache festlegen, werden diese Kodierungen durch ähnliche Kodierungen aus der ANSI- oder OEM-Kategorie für dieselbe Sprache ersetzt. Nachdem Sie das Dokument in Notepad++ in der von Ihnen benötigten Kodierung gespeichert oder das Dokument auf der Website zur Bearbeitung geöffnet haben, können Sie seinen Namen in der unteren rechten Ecke des Editors sehen: Textkodierung ASCII (Windows 1251, CP866, KOI8-R) und Unicode (UTF 8, 16, 32) – So beheben Sie das Problem mit Crackern – 10Um Verwirrung zu vermeiden , zusätzlich zu den oben beschriebenen Schritten , ist es sinnvoll, den Quellcode in den Header aller Seiten der Site zu schreiben und Informationen über genau diese Kodierung zu schreiben, damit keine Verwirrung auf dem Server oder dem lokalen Host entsteht. Im Allgemeinen verwenden alle Hypertext-Auszeichnungssprachen außer HTML eine spezielle XML-Deklaration, die die Textkodierung angibt.
<?xml version="1.0" encoding="windows-1251"?>
Vor dem Parsen des Codes weiß der Browser, welche Version verwendet wird und wie genau er die Zeichencodes dieser Sprache interpretieren muss. Bemerkenswert ist jedoch, dass diese XML-Deklaration weggelassen werden kann, wenn Sie das Dokument im Standard-Unicode speichern (die Codierung wird als UTF-8 betrachtet, wenn keine Stückliste vorhanden ist, oder als UTF-16, wenn eine Stückliste vorhanden ist). Im Falle eines HTML-Dokuments wird das Meta-Element zur Angabe der Kodierung verwendet , das zwischen dem öffnenden und schließenden Head-Tag platziert wird:
<head>
...
<meta charset="utf-8">
...
</head>
Dieser Eintrag unterscheidet sich erheblich vom Standard in HTML 4.01, entspricht jedoch vollständig dem HTML 5-Standard und wird von allen derzeit verwendeten Browsern korrekt verstanden. Theoretisch wäre es besser, das Meta-Element, das die Codierung des HTML-Dokuments angibt, so weit oben wie möglich im Dokument-Header zu platzieren , damit der Text zu dem Zeitpunkt, an dem er auf das erste Zeichen trifft, nicht aus dem grundlegenden ANSI-Zeichen stammt (das immer korrekt und korrekt gelesen wird). jede Variation), sollte der Browser bereits über Informationen darüber verfügen, wie die Codes dieser Zeichen interpretiert werden. Link zur Originalquelle: ASCII-Textkodierung (Windows 1251, CP866, KOI8-R) und Unicode (UTF 8, 16, 32) – wie man das Problem mit Crackern behebt
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION