PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [TCL] Sonderzeichen >128 im String ersetzen (regsub)


dreamlandbbs
06.04.2007, 15:27
Hallo,

Ich habe für meinen eggdrop ein Script geschrieben, welches per Publiccommand die Argumente an eine PHP-Seite übergibt.

Leider beinhalten die Argumente vereinzelt Sonderzeichen welche ich
mit regsub umwandel.


regsub -all {%} $cw_guild {%25} cw_guild;
regsub -all {*} $cw_guild {%2A} cw_guild;
regsub -all {<} $cw_guild {%3C} cw_guild;
...


Nun kommt es aber hin und wieder vor das Sonderzeichen âla † und «
im Argument auftauchen. Wie kann ich die Umwandeln ?

Wenn ich es wie bei den restlichen Zeichen versuche bekomme ich folgenden TCL Fehler:
"couldn't compile regular expression pattern: quantifier operand invalid"

Lässt sich das irgendwie was mit $chr realisieren ?


dreamlandbbs
07.04.2007, 00:21
Okay habe das Problem nach vielem Suchen selber gefunden. Die Argumente
waren nicht Unicode sondern iso8859-1.

[CODE]
set cw_daten [encoding convertfrom iso8859-1 $arg]
regsub -all {\x25} $cw_daten {%25} cw_daten;
[CODE]

D.h. Sie mussten erst in Unicode umgewandelt werden, danach konnte ich die nach dem HEX-Wert suchen und ihn ersetzen. z.b. \x25 für %