www.wikidata.de-de.nina.az
Als Byte Order Mark BOM deutsch Byte Reihenfolge Markierung wird eine charakteristische Bytefolge am Anfang eines Datenstroms bezeichnet die das Unicode Zeichen U FEFF englisch zero width no break space kodiert Diese Bytefolge dient als Kennung zur Definition der Byte Reihenfolge und Kodierungsform in UCS Unicode Zeichenketten insbesondere Textdateien Inhaltsverzeichnis 1 In UTF 16 und UTF 32 2 In UTF 8 3 Weiteres 4 Tabellarische Ubersicht 5 Siehe auch 6 Weblinks 7 EinzelnachweiseIn UTF 16 und UTF 32 BearbeitenBei den Kodierungen UTF 16 und UTF 32 muss die Byte Reihenfolge angegeben werden da hier die einzelnen Zeichen jeweils mindestens in 16 oder 32 Bit grossen Werten kodiert sind und damit mehrere Bytes benotigen UTF 16 2 Bytes UTF 32 4 Bytes Das auch die Byte Order Mark kennzeichnet dabei in welcher Reihenfolge die Bytes auszuwerten sind Diese Markierung wird immer dann besonders wichtig wenn Daten zwischen unterschiedlichen Systemen ausgetauscht werden In UTF 16 besteht das BOM in Big Endian Notation aus der Zweibyte Sequenz FE FF in der Little Endian Notation umgekehrt aus FF FE In UTF 32 besteht das BOM in Big Endian Notation aus der Sequenz 00 00 FE FF in der Little Endian Notation aus FF FE 00 00 Da das Zeichen U FFFE jeweils als ungultig definiert ist kann durch die Reihenfolge der ersten Bytes eindeutig die Auswertungs Reihenfolge fur alle folgenden Bytes festgestellt werden In UTF 8 BearbeitenDie UTF 8 Kodierung des BOM besteht aus der Bytesequenz EF BB BF die in nicht UTF 8 fahigen Texteditoren und Browsern meist als ISO 8859 1 Zeichen i erscheinen Bei UTF 8 stellt sich das Problem der Byte Reihenfolge zwar nicht doch ein BOM am String oder Dateianfang ist erlaubt um die Verwendung von UTF 8 als Kodierung zu kennzeichnen Eine sichere Unterscheidung zwischen UTF 8 und den ISO 8859 Zeichensatzen ist durch die Verwendung eines BOM zwar nicht gewahrleistet da in den 8 Bit Zeichensatzen alle Bytesequenzen erlaubt sind auch die UTF 8 Kodierung des BOM wenn aber die Alternative speziell UTF 8 oder ISO 8859 1 ist dann ist die pragmatische Annahme durchaus ublich dass die Zeichenfolge i nicht gemeint ist und daraus folgend dass eine UTF 8 Kodierung vorliegt In Java wird beim Einlesen von UTF 8 Texten das Byte Order Mark nicht automatisch erkannt Es ist Sache der Anwendungssoftware das daraus generierte Zeichen 0xFEFF bei Bedarf zu entfernen 1 Weiteres BearbeitenWird ein Byte Order Mark verwendet so kann es zu Problemen mit Programmen kommen die ein BOM nicht erwarten oder nicht kennen in Unix artigen Umgebungen wird in Skriptdateien oft der Shebang Mechanismus verwendet bei dem die Zeichenfolge ebenfalls am Dateianfang stehen muss steht hier stattdessen ein unerwartetes BOM so gibt es Probleme Compiler wie z B gcc vor Version 4 4 2 melden bei Verwendung eines BOM uberschussige Zeichen am Dateianfang in PHP mit Standardeinstellungen 3 fuhrt das BOM zur Ausgabe von Zeichen an den Browser so dass ohne output buffering keine HTTP Header mehr geandert werden konnen Tabellarische Ubersicht BearbeitenKodierung hexadezimale Darstellung dezimale Darstellung Darstellung nach Windows 1252UTF 8 EF BB BF 4 239 187 191 i UTF 16 BE FE FF 254 255 thyUTF 16 LE FF FE 255 254 ythUTF 32 BE 00 00 FE FF 0 0 254 255 thyUTF 32 LE FF FE 00 00 255 254 0 0 yth UTF 7 2B 2F 76 und ein Zeichen aus 38 39 2B 2F 5 43 47 118 und ein Zeichen aus 56 57 43 47 v und ein Zeichen aus 8 9 UTF 1 F7 64 4C 247 100 76 dLUTF EBCDIC DD 73 66 73 221 115 102 115 YsfsSCSU 0E FE FF von anderen moglichenBytefolgen wird abgeraten 6 14 254 255 thyBOCU 1 FB EE 28 optional gefolgt von FF 7 251 238 40 optional gefolgt von 255 ui optional gefolgt von yGB 18030 84 31 95 33 132 49 149 51 1 3Siehe auch BearbeitenMagische Zahl Informatik Weblinks BearbeitenThe Unicode Standard chapter 2 6 Encoding Schemes PDF 1 1 MB unicode org englisch The Unicode Standard chapter 2 13 Special Characters and Noncharacters section Byte Order Mark BOM PDF 1 1 MB unicode org englisch The Unicode Standard chapter 16 8 Specials section Byte Order Mark BOM U FEFF PDF 415 kB unicode org englisch Unicode FAQ UTF 8 UTF 16 UTF 32 amp BOM unicode org englisch Einzelnachweise Bearbeiten Bug Database Abgerufen am 21 Marz 2022 33415 Can t compile cpp file with UTF 8 BOM Abgerufen am 21 Marz 2022 PHP Request 22108 php doesn t ignore the utf 8 BOM Abgerufen am 21 Marz 2022 RFC 3629 UTF 8 a transformation format of ISO 10646 November 2003 Abschnitt 6 Byte order mark BOM Standard STD 63 englisch Nur die hochstwertigen 6 Bits des vierten Byte Die untersten beiden Bits sind von dem nachfolgenden Zeichen bestimmt UTS 6 Compression Scheme for Unicode Abgerufen am 21 Marz 2022 UTN 6 BOCU 1 Abgerufen am 21 Marz 2022 Abgerufen von https de wikipedia org w index php title Byte Order Mark amp oldid 235641117