A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array/toBase64 below:

Uint8Array.prototype.toBase64() - JavaScript | MDN

Uint8Array.prototype.toBase64()

Limited availability

Die toBase64() Methode von Uint8Array Instanzen gibt einen auf den Daten in diesem Uint8Array-Objekt basierenden base64-codierten String zurück.

Diese Methode sollte gegenüber Window.btoa() bevorzugt werden, insbesondere wenn Sie bereits ein Uint8Array mit dem Objekt besitzen, da Sie es nicht zuerst in einen String umwandeln müssen.

Syntax
toBase64()
toBase64(options)
Parameter
options Optional

Ein Objekt, das das Format des base64-Strings anpasst. Es kann die folgenden Eigenschaften enthalten:

alphabet Optional

Ein String, der das zu verwendende base64-Alphabet angibt. Es kann eines der folgenden sein:

"base64" (Standard)

Kodiert die Eingabe mit dem Standard-base64-Alphabet, das + und / verwendet.

"base64url"

Kodiert die Eingabe mit dem URL-sicheren base64-Alphabet, das - und _ verwendet.

omitPadding Optional

Ein Boolean, der angibt, ob Auffüllzeichen (=) am Ende des base64-Strings weggelassen werden sollen. Der Standardwert ist false.

Rückgabewert

Ein base64-codierter String, der die Daten im Uint8Array darstellt.

Ausnahmen
TypeError

Wird in einem der folgenden Fälle ausgelöst:

Beispiele Kodierung von Binärdaten

Dieses Beispiel verwendet die Standardoptionen alphabet und omitPadding, um Daten aus einem Uint8Array in einen base64-String zu kodieren.

const uint8Array = new Uint8Array([29, 233, 101, 161]);
console.log(uint8Array.toBase64()); // "HelloQ=="
Kodierung von Daten ohne Auffüllung
const uint8Array = new Uint8Array([29, 233, 101, 161]);
console.log(uint8Array.toBase64({ omitPadding: true })); // "HelloQ"
Kodierung von Daten mit URL-sicherem Alphabet

Dieses Beispiel füllt ein URLSearchParams-Objekt mit einem base64-codierten String, der das URL-sichere Alphabet verwendet.

const uint8Array = new Uint8Array([46, 139, 222, 255, 42, 46]);
const base64 = uint8Array.toBase64({ alphabet: "base64url" });
const params = new URLSearchParams();
params.set("data", base64);
console.log(params.toString()); // "data=Love_you"
Stream-Kodierung

Dieses Beispiel ist aus dem originalen Vorschlag entnommen und zeigt, wie Streaming in Benutzerseitensoftware implementiert werden kann. Es ahmt die API von TextEncoder mit der stream-Option nach.

class Base64Encoder {
  #extra;
  #extraLength;
  constructor() {
    this.#extra = new Uint8Array(3);
    this.#extraLength = 0;
  }

  // Partly derived from https://github.com/lucacasonato/base64_streams/blob/main/src/iterator/encoder.ts
  encode(chunk = Uint8Array.of(), options = {}) {
    const stream = options.stream ?? false;

    if (this.#extraLength > 0) {
      const bytesNeeded = 3 - this.#extraLength;
      const bytesAvailable = Math.min(bytesNeeded, chunk.length);
      this.#extra.set(chunk.subarray(0, bytesAvailable), this.#extraLength);
      chunk = chunk.subarray(bytesAvailable);
      this.#extraLength += bytesAvailable;
    }

    if (!stream) {
      // assert: this.#extraLength.length === 0 || this.#extraLength === 3 || chunk.length === 0
      const prefix = this.#extra.subarray(0, this.#extraLength).toBase64();
      this.#extraLength = 0;
      return prefix + chunk.toBase64();
    }

    let extraReturn = "";

    if (this.#extraLength === 3) {
      extraReturn = this.#extra.toBase64();
      this.#extraLength = 0;
    }

    const remainder = chunk.length % 3;
    if (remainder > 0) {
      this.#extra.set(chunk.subarray(chunk.length - remainder));
      this.#extraLength = remainder;
      chunk = chunk.subarray(0, chunk.length - remainder);
    }

    return extraReturn + chunk.toBase64();
  }
}

const encoder = new Base64Encoder();

console.log(
  encoder.encode(Uint8Array.of(72, 101, 108, 108, 111), { stream: true }),
);
// "SGVs"
console.log(
  encoder.encode(Uint8Array.of(32, 87, 111, 114, 108, 100), { stream: true }),
);
// "bG8gV29y"
console.log(encoder.encode());
// "bGQ="
Spezifikationen Browser-Kompatibilität Siehe auch

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4