Start · Sprachen · PHP · Referenz · convert_cyr_string

convert_cyr_string

Funktion

Konvertiert einen String von einem kyrillischen Zeichensatz in einen anderen.

seit PHP 4.0.0 Kategorie: string

Signatur

convert_cyr_string(string $str, string $from, string $to): string

Beschreibung

convert_cyr_string() ermöglicht die Konvertierung von Strings zwischen verschiedenen kyrillischen Zeichensätzen. Die Funktion wurde vor der breiten Verbreitung von UTF-8 eingesetzt, um kyrillische Texte zwischen Kodierungen wie KOI8-R, Windows-1251, ISO-8859-5 und weiteren zu übersetzen.

Die Zeichensätze werden über einbuchstabige Kennzeichen angegeben. Unterstützte Kürzel sind: k (KOI8-R), w (Windows-1251), i (ISO-8859-5), a / d (x-cp866, DOS), m (x-mac-cyrillic) und s (x-cp855).

In modernen Anwendungen sollte bevorzugt mb_convert_encoding() oder iconv() verwendet werden, da diese Funktionen eine deutlich breitere Palette an Zeichensätzen abdecken und aktiv gepflegt werden. convert_cyr_string() ist seit PHP 7.4 als veraltet (deprecated) markiert und wurde in PHP 8.0 vollständig entfernt.

Die Funktion ist nützlich bei der Pflege von Legacy-Systemen, die noch mit älteren kyrillischen Kodierungen arbeiten und keine Möglichkeit bieten, auf modernere Methoden umzustellen.

Parameter

Name Typ Default Beschreibung
$str Pflicht string Der zu konvertierende Eingabe-String in der Quell-Kodierung.
$from Pflicht string Einbuchstabiges Kürzel des Quell-Zeichensatzes. Gültige Werte: k (KOI8-R), w (Windows-1251), i (ISO-8859-5), a/d (cp866/DOS), m (Mac-Kyrillisch), s (cp855).
$to Pflicht string Einbuchstabiges Kürzel des Ziel-Zeichensatzes. Dieselben Werte wie bei from sind zulässig.

Rückgabewert

Typ
string
Beschreibung
Gibt den konvertierten String in der angegebenen Ziel-Kodierung zurück.

Beispiele

Konvertierung von KOI8-R nach Windows-1251

<?php
// Beispiel: KOI8-R-kodierter kyrillischer String wird nach Windows-1251 konvertiert
// (PHP < 7.4 erforderlich, da in 7.4 deprecated und in 8.0 entfernt)
$koi8_string = "\xc8\xc5\xcc\xcc\xcf"; // "HELLO" in kyrillischen Buchstaben (KOI8-R)
$win1251_string = convert_cyr_string($koi8_string, 'k', 'w');
echo bin2hex($win1251_string); // Ausgabe des konvertierten Strings als Hex
e5e5ebebee

Moderne Alternative mit mb_convert_encoding

<?php
// Empfohlene Alternative zu convert_cyr_string() ab PHP 7.4+
$koi8_string = "\xc8\xc5\xcc\xcc\xcf";
$win1251_string = mb_convert_encoding($koi8_string, 'Windows-1251', 'KOI8-R');
echo bin2hex($win1251_string);
e5e5ebebee

// Wichtig · Fallstricke

Deprecation: convert_cyr_string() wurde in PHP 7.4 als veraltet markiert und in PHP 8.0 vollständig entfernt. Code, der diese Funktion verwendet, muss vor dem Upgrade auf PHP 8.0 auf mb_convert_encoding() oder iconv() umgestellt werden.

Für neue Projekte sollte ausschließlich UTF-8 verwendet werden, um Probleme mit kyrillischen und anderen nicht-lateinischen Zeichensätzen zu vermeiden. Die Verwendung mehrerer verschiedener Kodierungen innerhalb einer Anwendung erhöht die Fehleranfälligkeit erheblich.