Hallo,
wie kann man ein ganzes Array von Western nach UTF-8 umwandeln.
$search = mb_convert_encoding(array("ä", "Ä", "ü", "Ü", "ö", "Ö", "ß"), "utf-8");
mb_convert_encoding erwartet als ersten Parameter eine String-Variable. Die Notices kommen, weil PHP automatisch in den Array in einen String umwandelt. Dabei kommt »Array« heraus (siehe echo(array('a', 'b', 'c'));), was letztlich dazu führt, dass nichts ersetzt wird.
Du müsstest also jedes Array-Element einzeln in UTF-8 umwandeln, zum Beispiel so:
$search = array('ä', 'Ä', 'ü', 'Ü', 'ö', 'Ö', 'ß');
foreach ($search as &$character) {
$character = utf8_encode($character);
}
Du kannst übrigens utf8_encode statt mb_convert_encoding nehmen. Die mbstring-Erweiterung von PHP ist nicht immer verfügbar.
$replace = mb_convert_encoding(array("ae", "ae", "ue", "ue", "oe", "oe", "ss"), "utf-8");
Da diese Zeichen aus ASCII stammen, brauchen sie nicht gesondert umkodiert werden, weil die Zeichenpositionen in UTF-8 und der ISO-Kodierung, die dein PHP-Script wahrscheinlich verwendet, identisch sind.
Alternativ kannst du dein Script auch direkt in UTF-8 schreiben.
Mathias