Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
madams •->

Anmeldedatum: 07.08.2001 Beiträge: 6 Wohnort: Dortmund
|
Verfasst am: 10.10.2001 - 11:53 Titel: CGI / Sonderzeichenkodierung |
|
|
Hallo zusammen,
mit einem AppleScript-CGI verarbeite ich die Formulareingaben einer HTML-Seite. Sonderzeichen wie Umlaute usw. werden dabei natürlich codiert (also z.B. ü als %FC). Kennt jemand eine einfache Möglichkeit, im Script diese Codierungen aus dem String wieder zu entfernen, vielleicht eine Scripterweiterung?
Danke für alle Tipps und viele Grüße, Michael _________________ Michael Adams |
|
Nach oben |
|
 |
macgix •--->


Anmeldedatum: 13.12.2000 Beiträge: 206 Wohnort: K–ln
|
Verfasst am: 10.10.2001 - 16:12 Titel: CGI / Sonderzeichenkodierung |
|
|
Schau Dir mal das AppleScript Guidebook Modul "Essential Subroutines -> AppleScript CGI" an. Dort findest du bereits ein paar Scripte, die Dir dabei helfen.
Die Alternative sind Scripting Additions wie encodeURL, die Du unter www.osaxen.com findest.
encode/decode, das ist hier die Frage. - Nein, im Ernst, ich denke, durch Anpassung der Scripte aus dem Guidebook kommst Du ans Ziel.
Ist das zu schwer? - Dann so:
Durchlaufe den Text in der Variablen per repeat-loop, indem Du immer nach dem % Zeichen suchst:
set new_string to {}
set pos_ition to 0
repeat with n from 1 thru (length of kodierter_text)
if a_char is % then
repeat with m from 1 to 3
if character n + m is " " then
exit repeat
else
set temp to (characters n thru n + 2 of kodierter_text) as text
repeat with g
if temp is item g of (eine Liste mit den Kodierungen) then
set temp to item g of (eine Liste mit den deutschen Umlauten)
exit repeat
end
end
set temper to temp
end
end
set new_string to new_string & temper
else
set new_string to new_string & item n of kodierter_text as text)
end
return new_string
Ich habe das jetzt mal nur so hingeschriebe in diesem kleine Eingabefenster hier. Es ist nicht komplett und es fehlt noch etwas.
Wenn Du's korrigierst und erweiterst, dürfte es Deinen Zwecken genügen und Du hast noch etwas dabei gelernt.
Ich bin etwas müde mit 3,5 h Schlaf diese Nacht wegen Programierung, deswegen diese chaotische Antwort. _________________ [macgix] |
|
Nach oben |
|
 |
Folker •---->


Anmeldedatum: 11.12.2000 Beiträge: 649 Wohnort: Holsteinische Schweiz
|
Verfasst am: 11.10.2001 - 08:52 Titel: CGI / Sonderzeichenkodierung |
|
|
Ergänzend dazu noch der Tipp. AppleScript's text item delimiters müssen nicht aus einem Zeichen bestehen! Diese können auch den Wert {"%FC"} annehmen. Dann sollte es mittels folgenden Handlers doch relativ einfach werden.
--=============================
get wechsel_char("%FC", "X", "abc%FCghi")
on wechsel_char(old_ch, n_char, temp)
set AppleScript's text item delimiters to {old_ch}
set temp to text items of temp
set AppleScript's text item delimiters to {n_char}
set temp to temp as string
set AppleScript's text item delimiters to {""}
return temp
end wechsel_char
--================
Das ganze kann dann natürlich mit repeat loops kombiniert einen ganzen Stapel von verschiedenen Zeichen tauschen. Die Zeichen "%FC" werden in dem entspr. String (temp) auf einen Rutsch konvertiert.
Gruß,
Folker _________________ Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign |
|
Nach oben |
|
 |
madams •->

Anmeldedatum: 07.08.2001 Beiträge: 6 Wohnort: Dortmund
|
Verfasst am: 11.10.2001 - 11:04 Titel: CGI / Sonderzeichenkodierung |
|
|
Danke für eure Tipps!
Ich hatte es in der Zwischenzeit bereits so gelöst, wie Folker es vorschlägt, mit einer Scripterweiterung wäre es nur einfacher gewesen. Vor allem kenne ich auch nicht alle Zeichen, die codiert werden und so muss ich meine Liste in Zukunft ergänzen...
Ich habe übrigens herausgefunden, dass es schon eine Scripterweitung dafür gibt, und zwar ACME Script Widgets. In dem Paket ist auch eine zweite Erweiterung enthalten, die für genau mein Problem passt. Aber leider läuft das nicht unter OS X!
Hier ist mein Script, welches außerdem noch den String nach dem Muster "titel=Don&name=Peppone" in eine Liste konvertiert:
property dieWerte : {{"%2F", "/"}, {"+", " "}, {"%FC", "ü"}, {"%DC", "Ü"}, {"%F6", "ö"}, {"%D6", "Ö"}, {"%E4", "ä"}, {"%C4", "Ä"}}
on GetPostedData(derString)
set dieListe to {}
set dieDelims to AppleScript's text item delimiters
repeat with i from 1 to length of dieWerte
set AppleScript's text item delimiters to {item 1 of (item i of dieWerte)}
set derString to text items of derString
set AppleScript's text item delimiters to {item 2 of (item i of dieWerte)}
set derString to derString as text
end repeat
set AppleScript's text item delimiters to "&"
set derString to text items of derString
set AppleScript's text item delimiters to "="
repeat with i from 1 to length of derString
set dieListe to dieListe & {text items 1 through 2 of (item i of derString)}
end repeat
set AppleScript's text item delimiters to dieDelims
return dieListe
end GetPostedData
Viele Grüße, Michael _________________ Michael Adams |
|
Nach oben |
|
 |
macgix •--->


Anmeldedatum: 13.12.2000 Beiträge: 206 Wohnort: K–ln
|
Verfasst am: 12.10.2001 - 02:14 Titel: CGI / Sonderzeichenkodierung |
|
|
Schau' Dir auch mal NUPS an. Gibt's hier. _________________ [macgix] |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2002 phpBB Group Deutsche Übersetzung von phpBB.de
|
|
|