Eine Möglichkeit wäre, zuerst alle Bindestriche durch eine spezielle Zeichenfolge zu ersetzen, die sonst sicher nicht vorkommt, vielleicht einen betimmten MD5-Hash oder sowas. Dann alle Nicht-Wortzeichen global ersetzen und schließlich die Spezialzeichenfolge wieder global in Bindestriche zurückwandeln.
Konvertiere nichts, das du nicht konvertieren musst.
Umständlich und nicht besonders performant, aber immerhin – Problem gelöst! Quasi von hinten durch die Brust ins Auge getroffen...
Jetzt musst du nur noch wissen, aus welchen zeichen ein MD5 Hash besteht.
In seiner base64 Form ist ein + eventuell vorhanden, das bei einer Rückkonvertierung zu Komplikationen führen kann.
Die sind zwar vermeidubar, aber ich tippe dennoch eher auf einen Schuss in den Fuss.
mfg Beat
><o(((°> ><o(((°>
<°)))o>< ><o(((°>o
Der Valigator leibt diese Fische