Fischer-Bayern.de
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

CGI / Sonderzeichenkodierung

 
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
madams
•->
•->


Anmeldedatum: 07.08.2001
Beiträge: 6
Wohnort: Dortmund

BeitragVerfasst am: 10.10.2001 - 11:53    Titel: CGI / Sonderzeichenkodierung Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
macgix
•--->
•--->


Anmeldedatum: 13.12.2000
Beiträge: 206
Wohnort: K–ln

BeitragVerfasst am: 10.10.2001 - 16:12    Titel: CGI / Sonderzeichenkodierung Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 11.10.2001 - 08:52    Titel: CGI / Sonderzeichenkodierung Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
madams
•->
•->


Anmeldedatum: 07.08.2001
Beiträge: 6
Wohnort: Dortmund

BeitragVerfasst am: 11.10.2001 - 11:04    Titel: CGI / Sonderzeichenkodierung Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
macgix
•--->
•--->


Anmeldedatum: 13.12.2000
Beiträge: 206
Wohnort: K–ln

BeitragVerfasst am: 12.10.2001 - 02:14    Titel: CGI / Sonderzeichenkodierung Antworten mit Zitat

Schau' Dir auch mal NUPS an. Gibt's hier.
_________________
[macgix]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Forum Alle Zeiten sind GMT + 2 Stunden
Seite 1 von 1

 
Gehe zu:  
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


AppleScript für absolute Starter