Signatur
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
$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.';
}
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.';
}
// 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.