Start · Sprachen · PHP · Referenz · iconv_get_encoding

iconv_get_encoding

Funktion

Gibt die aktuellen iconv-Einstellungen für Zeichensatz-Konvertierungen zurück.

seit PHP 4.0.5 Kategorie: string

Signatur

iconv_get_encoding(string $type = "all"): array|string|false

Beschreibung

iconv_get_encoding() liefert die aktuell konfigurierten Zeichensatz-Einstellungen des iconv-Moduls. Je nach übergebenem $type wird entweder eine einzelne Einstellung als String oder ein assoziatives Array mit allen Einstellungen zurückgegeben.

Die Funktion ist nützlich, wenn man prüfen möchte, welche internen, Eingabe- oder Ausgabe-Zeichensätze für iconv-Operationen aktiv sind – etwa bevor man iconv() oder iconv_substr() verwendet, um unerwartete Kodierungsfehler zu vermeiden.

Die Einstellungen können mit iconv_set_encoding() geändert werden. Die drei relevanten Typen sind input_encoding, output_encoding und internal_encoding. Letzterer bestimmt, wie PHP-interne Zeichenketten bei iconv-Funktionen interpretiert werden.

  • all – Gibt ein assoziatives Array mit allen drei Einstellungen zurück.
  • input_encoding – Zeichensatz für eingehende Daten.
  • output_encoding – Zeichensatz für ausgehende Daten.
  • internal_encoding – PHP-interner Zeichensatz für iconv-Operationen.

Parameter

Name Typ Default Beschreibung
$type string all Der Typ der gewünschten Einstellung. Mögliche Werte: "all", "input_encoding", "output_encoding" oder "internal_encoding". Bei "all" wird ein Array zurückgegeben.

Rückgabewert

Typ
array|string|false
Beschreibung
Bei $type = "all" ein assoziatives Array mit den Schlüsseln input_encoding, output_encoding und internal_encoding. Bei einem spezifischen Typ-Namen wird der Wert als String zurückgegeben. Im Fehlerfall (ungültiger Typ) wird false zurückgegeben.

Beispiele

Alle iconv-Einstellungen ausgeben

<?php
$settings = iconv_get_encoding('all');
if ($settings !== false) {
    echo 'Interne Kodierung:  ' . $settings['internal_encoding'] . PHP_EOL;
    echo 'Eingabe-Kodierung:  ' . $settings['input_encoding'] . PHP_EOL;
    echo 'Ausgabe-Kodierung:  ' . $settings['output_encoding'] . PHP_EOL;
} else {
    echo 'Konnte Einstellungen nicht ermitteln.';
}
Interne Kodierung: UTF-8 Eingabe-Kodierung: ISO-8859-1 Ausgabe-Kodierung: UTF-8

Nur die interne Kodierung abfragen

<?php
$internalEncoding = iconv_get_encoding('internal_encoding');
if ($internalEncoding !== false) {
    echo 'Aktuelle interne iconv-Kodierung: ' . $internalEncoding . PHP_EOL;

    // Vor einer Konvertierung prüfen und ggf. anpassen
    if (strtolower($internalEncoding) !== 'utf-8') {
        iconv_set_encoding('internal_encoding', 'UTF-8');
        echo 'Interne Kodierung auf UTF-8 geändert.' . PHP_EOL;
    }
} else {
    echo 'Ungültiger Einstellungstyp angegeben.';
}
Aktuelle interne iconv-Kodierung: ISO-8859-1 Interne Kodierung auf UTF-8 geändert.

// Wichtig · Fallstricke

Deprecation-Hinweis: Ab PHP 5.6 werden die iconv-Einstellungen input_encoding, output_encoding und internal_encoding durch die globale PHP-Option default_charset (Standard: UTF-8) beeinflusst. Das explizite Setzen über iconv_set_encoding() ist in neueren PHP-Versionen meist nicht mehr notwendig.

Bei modernen PHP-Projekten (PHP 7+) empfiehlt es sich, konsequent UTF-8 zu verwenden und mbstring-Funktionen (mb_internal_encoding() etc.) gegenüber iconv zu bevorzugen, da diese robuster mit Multibyte-Zeichen umgehen.