Signatur
Beschreibung
sapi_windows_cp_is_utf8() prüft, ob die aktuell gesetzte Codepage der Windows-SAPI (Server Application Programming Interface) UTF-8 entspricht. Auf Windows-Systemen arbeiten Konsolenanwendungen und PHP-CLI-Skripte mit einer systemspezifischen Codepage, die bestimmt, wie Text kodiert und ausgegeben wird.
Die Funktion ist besonders nützlich, wenn man sicherstellen möchte, dass Texte korrekt kodiert ausgegeben werden – etwa beim Schreiben von CLI-Werkzeugen, die Unicode-Zeichen (z. B. Umlaute, chinesische Schriftzeichen, Emojis) in der Windows-Konsole ausgeben sollen. Ist die Codepage UTF-8 (Codepage 65001), gibt die Funktion true zurück; andernfalls false.
Diese Funktion steht ausschließlich unter Windows zur Verfügung und ist nur in SAPI-Umgebungen (z. B. CLI) sinnvoll einsetzbar. In Kombination mit sapi_windows_cp_set() und sapi_windows_cp_get() lässt sich die Codepage-Verwaltung vollständig kontrollieren.
Rückgabewert
true zurück, wenn die aktuelle Windows-SAPI-Codepage UTF-8 (Codepage 65001) ist, andernfalls false.Beispiele
Prüfen, ob UTF-8-Ausgabe möglich ist
<?php
if (sapi_windows_cp_is_utf8()) {
echo "Die Konsole verwendet UTF-8 – Unicode-Ausgabe ist möglich.\n";
} else {
$current = sapi_windows_cp_get();
echo "Aktuelle Codepage: {$current} – keine UTF-8-Unterstützung.\n";
}
Automatisch auf UTF-8 umschalten, falls nötig
<?php
if (!sapi_windows_cp_is_utf8()) {
// Versuche, die Codepage auf UTF-8 (65001) zu setzen
if (sapi_windows_cp_set(65001)) {
echo "Codepage erfolgreich auf UTF-8 gesetzt.\n";
} else {
echo "Codepage konnte nicht geändert werden.\n";
}
} else {
echo "UTF-8 ist bereits aktiv.\n";
}
// Jetzt sicher Unicode-Zeichen ausgeben
echo "Hallo Welt: \u{1F600}\n";
// Wichtig · Fallstricke
Nur unter Windows verfügbar: Diese Funktion existiert ausschließlich auf Windows-Plattformen. Auf Linux/macOS führt ein Aufruf zu einem schwerwiegenden Fehler (Call to undefined function). Bei plattformübergreifendem Code sollte die Verfügbarkeit zuvor mit function_exists('sapi_windows_cp_is_utf8') geprüft werden.
Nur für Windows-SAPI-Kontexte: Die Funktion ist primär für CLI-Skripte gedacht. Im Webserver-Kontext (z. B. Apache, FPM) ist die Windows-Codepage in der Regel irrelevant, da die HTTP-Antworten eigene Encoding-Header verwenden.