uuencode() (Funktion)

Die Funktion ' uuencode() kodiert einen Binärwert als ASCII, indem sie das UNIX UUencode-Format verwendet.

Die Codierung setzt den Binärwert in ASCII-Zeichencodes im Bereich ab 32 und darüber um. In der Vergangenheit wurde die Codierung mit 'uuencode' zum Codieren von Dateien verwendet, die für die E-Mail-Übertragung bestimmt waren. Die Funktion uudecode() kehrt die Auswirkung der Funktion uuencode() um, indem die ursprüngliche Binärdatei exakt erneut erstellt wird.

Der Algorithmus der Funktion uuencode() führt folgende Tasks aus:
  1. Teilt den Binärwert in Gruppen von drei Byte (24 Bit) auf, wobei bei Bedarf am Ende des Binärwerts Nullen hinzugefügt werden, um eine letzte Gruppe von drei Byte zu erstellen.
  2. Teilt die 24 Bit in vier Gruppen mit jeweils sechs Bit auf. Dadurch werden vier Dezimalzahlen im Bereich 0-63 erstellt.
  3. Fügt die Dezimalzahl 32 zu jeder Zahl hinzu, um ASCII-Zeichen im Bereich 32 (Leerzeichen) - 95 (Unterstrich) zu erstellen.
Schritt 1 wird durch die folgende Tabelle veranschaulicht, die zeigt, wie jedes Zeichen eines Eingabewertes, hat, in Bytes verarbeitet wird.
Tabelle 1. Aufgaben des Algorithmus der Funktion uuencode(), Teil I
Werttyp Eingabezeichen Eingabezeichen Eingabezeichen
Ursprüngliche ASCII-Eingabe h a t
Dezimale ASCII-Zahl 104 97 116
Binäre ASCII-Zahl (8 Bit) 01101000 01100001 01110100

Die Schritte 2 und 3 sind in der folgenden Tabelle dargestellt. Die in der vorangegangenen Tabelle gezeigte Umsetzung der drei binären ASCII-Werte mit 8 Bit in vier Binärwerte mit 6 Bit wird in der ersten Zeile der folgenden Tabelle gezeigt.

Tabelle 2. Aufgaben des Algorithmus der Funktion uuencode(), Teil II
Werttyp Wert eingeben Wert eingeben Wert eingeben Wert eingeben
Binärwert mit 6 Bit 011010 000110 000101 110100
Dezimales Äquivalent 26 6 5 52
Dezimalzahl + 32 58 38 273 84
Codierung mit 'uuencode' : & % T

Syntax

Die Funktion uuencode hat folgende Syntax:
varchar = uuencode(varchar input);
nvarchar = uuencode(nvarchar input);

Der Wert " input gibt den zu kodierenden Binärwert an.

Rückgabe

Die Funktion gibt eine codierte Zeichenfolge zurück.

Für die Funktionen uuencode() und uudecode() sind die Informationen zum Start- und Endheader wichtig. Wenn Sie die Header-Informationen aus der Ausgabe der Funktion ' uuencode() entfernen und die kodierte Zeichenkette an die Funktion ' uudecode() übergeben, gibt die Funktion ' uudecode() zurückERROR: 0 : Invalid UUData.

Beispiel

select uuencode ('hat');
      UUENCODE
--------------------
 begin
#:&%T
'
end

(1 row)