Tsaangu beaichehku!
Also hatte ich bislang deutschen Sonderzeichen ß,ö,ä,ü,Ö,Ä,Ü per Post senden lassen und wie folgt umgewandelt:
$neuze = Array('Ae','Oe;','Ue','ae','oe','ue','ss','_');
$ander = Array(chr(196),chr(214),chr(220),chr(228),chr(246),chr(252),chr(223),' ');
Ohne jetzt die Effizienz Deines Codes untersucht zu haben halte ich von solchen Ersetzungen offen gestanden wenig bis gar nichts. Weiß und Weiss sind per definitionem zwei unterschiedliche Namen, also geht hier Information verloren.
Bei der Ausgabe sieht es IMHO auch ziemlich holprig aus, wenn diese Fallbacks wie ue im Text stehen, und automatische Rück-Ersetzung geht nicht – dafür ist das stur ersetzende Script einfach nicht intellektüll genug.
Zudem ist so eine Liste nie vollständig; auch in Deutschland muß man mit René, André oder Stanisław rechnen. Eventuelle typographisch korrekte Satzzeichen (–’„“…) fehlen auch, und ja, die können auch von unbedarften Anwendern kommen (wenn die z.B. ihren Text in Word tippen, dieses Zeichen wie " und ' automatisch ersetzt, und die User den Text dann in das Eingabefeld kopieren).
Besser ist es, alle Zeichen so zu lassen, wie sie sind, das verarbeitende Script so zu bauen, daß es damit klarkommt, und überall eine einheitliche Kodierung zu verwenden (für westeuropäische Projekte ist nur UTF-8 sinnvoll). Bei Aus- oder Weitergabe der Daten muß ggf. kontextgerecht escaped werden, z.B. in URLs.
Falls es um Dateinamen geht: Die würde ich grundsätzlich selbst setzen und nicht dem User überlassen. Dateinamen mit Sonderzeichen können, wenn nicht schon auf dem Server, immer bei irgendwelchen Clients Probleme machen.
Viele Grüße vom Længlich
Mein aktueller Gruß ist:
Shoshoni (USA)