Endian-Format

Die Bytereihenfolge ist ein Datenattribut, das die Bytereihenfolge beschreibt. Wenn Anwendungen Daten austauschen, müssen sie die Konventionen für die Reihenfolge von Multibyte-Daten kennen. Andernfalls können Daten falsch interpretiert werden.

Daten können die folgenden Byte-Reihenfolge-Formate haben:

Big Endian
Ein Format, bei dem das höchstwertige Byte zuerst gespeichert wird. Die anderen Bytes folgen in absteigender Reihenfolge ihrer Bedeutung. Bei einem 4-Byte-Wort ist die Byte-Reihenfolge beispielsweise 0, 1, 2, 3. Für ein Zwei-Byte-Wort ist es 0, 1.

Das Big-Endian-Format wird von pSeries,, IBM Z®, iSeries, Sun und HP verwendet.

Little Endian
Ein Format, bei dem das Byte mit dem niedrigsten Stellenwert zuerst gespeichert wird. Die anderen Bytes folgen in aufsteigender Reihenfolge ihrer Bedeutung. Bei einem 4-Byte-Wort ist die Byte-Reihenfolge beispielsweise 3, 2, 1, 0. Für ein Zwei-Byte-Wort ist es 1, 0.

Das Little-Endian-Format wird von Intel-basierten Computern verwendet, einschließlich xSeries.

Die Reihenfolge der Bytes betrifft nur Multi-Byte-Daten. Innerhalb eines einzelnen Bytes sind die Bits immer auf dieselbe Weise angeordnet. Die Bit-Reihenfolge innerhalb eines Bytes ist immer 7, 6, 5, 4, 3, 2, 1, 0.

UTF-8 daten sind nicht von der Endian-Sortierung betroffen, selbst wenn die Daten in mehr als 1 Byte gespeichert sind. UTF-16 daten und UTF-32 -Daten sind von der Endian-Notation betroffen. Zum Beispiel wird das Zeichen "A" für UTF-16 und UTF-32 codiert, wie in der folgenden Tabelle dargestellt:
Tabelle 1. Beispielkodierung für das Zeichen "A"
  UTF-16 UTF-321
Big Endian X'0041' X'00000041'
Little Endian X'4100' X'41000000'
Hinweis:
  1. Db2 for z/OS® speichert keine Daten in UTF-32

Die Reihenfolge der Bytes wird zu einem potenziellen Problem, wenn Daten zwischen Systemen und Anwendungen ausgetauscht werden, die unterschiedliche Bytereihenfolgen verwenden, und die Daten nicht ordnungsgemäß konvertiert werden. Achten Sie auf das Endian-Format der Daten, die Ihr System oder Ihre Anwendung verarbeitet. Möglicherweise stellen Sie Probleme mit der Bytereihenfolge fest, wenn Sie sich die Werte der Zeichenkodierung in den Traces ansehen. Ein solches Problem könnte bestehen, wenn Sie feststellen, dass numerische Byte-Werte vertauscht wurden. Zum Beispiel erwarten Sie X'0041 ', sehen aber X'4100 '.

Beispiel

Angenommen, Sie laden Daten im Little-Endian-Format ( UTF-16, CCSID 1202) aus einer Anwendung unter .NET. Db2 for z/OS unterstützt die Speicherung von Daten in CCSID 1202 nicht. Allerdings unterstützt Db2 Konvertierungen zu und von CCSID 1202. Dadurch werden die Daten konvertiert und im Big-Endian-Format „ UTF-16Db2 “ (CCSID 1200) gespeichert. In diesem Fall sollten Sie sich bewusst sein, dass sich das Datenformat geändert hat.