Stringcodierung nach RFC 1738 (rawurlencode() in php)

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
crX
Beiträge: 21
Registriert: 29.12.2004 17:29
Wohnort: Dort wo's leckcher Fondüü hat

Stringcodierung nach RFC 1738 (rawurlencode() in php)

Beitrag von crX »

Dieser Code codiert einen String nach dem RFC 1738 Standard (z.B. %26 für das &-Zeichen). Is vielleicht nicht sonderlich nützlich im Alltag, aber wer's braucht, hier bitte:

Code: Alles auswählen

NewList RFC1738.s()
AddElement(RFC1738())
RFC1738() = " |%A0"
AddElement(RFC1738())
RFC1738() = "Â|%C2"
AddElement(RFC1738())
RFC1738() = "Ã|%C3"
AddElement(RFC1738())
RFC1738() = "Ä|%C4"
AddElement(RFC1738())
RFC1738() = "Å|%C5"
AddElement(RFC1738())
RFC1738() = "Æ|%C6"
AddElement(RFC1738())
RFC1738() = "Ç|%C7"
AddElement(RFC1738())
RFC1738() = "È|%C8"
AddElement(RFC1738())
RFC1738() = "É|%C9"
AddElement(RFC1738())
RFC1738() = "Ê|%CA"
AddElement(RFC1738())
RFC1738() = "Ë|%CB"
AddElement(RFC1738())
RFC1738() = "Ì|%CC"
AddElement(RFC1738())
RFC1738() = "Í|%CD"
AddElement(RFC1738())
RFC1738() = "Î|%CE"
AddElement(RFC1738())
RFC1738() = "Ï|%CF"
AddElement(RFC1738())
RFC1738() = "Ð|%D0"
AddElement(RFC1738())
RFC1738() = "Ñ|%D1"
AddElement(RFC1738())
RFC1738() = "Ò|%D2"
AddElement(RFC1738())
RFC1738() = "Ó|%D3"
AddElement(RFC1738())
RFC1738() = "Ô|%D4"
AddElement(RFC1738())
RFC1738() = "Õ|%D5"
AddElement(RFC1738())
RFC1738() = "Ö|%D6"
AddElement(RFC1738())
RFC1738() = "×|%D7"
AddElement(RFC1738())
RFC1738() = "Ø|%D8"
AddElement(RFC1738())
RFC1738() = "Ù|%D9"
AddElement(RFC1738())
RFC1738() = "Ú|%DA"
AddElement(RFC1738())
RFC1738() = "Û|%DB"
AddElement(RFC1738())
RFC1738() = "Ü|%DC"
AddElement(RFC1738())
RFC1738() = "Ý|%DD"
AddElement(RFC1738())
RFC1738() = "Þ|%DE"
AddElement(RFC1738())
RFC1738() = "ß|%DF"
AddElement(RFC1738())
RFC1738() = "à|%E0"
AddElement(RFC1738())
RFC1738() = "á|%E1"
AddElement(RFC1738())
RFC1738() = "â|%E2"
AddElement(RFC1738())
RFC1738() = "ã|%E3"
AddElement(RFC1738())
RFC1738() = "ä|%E4"
AddElement(RFC1738())
RFC1738() = "å|%E5"
AddElement(RFC1738())
RFC1738() = "æ|%E6"
AddElement(RFC1738())
RFC1738() = "ç|%E7"
AddElement(RFC1738())
RFC1738() = "è|%E8"
AddElement(RFC1738())
RFC1738() = "é|%E9"
AddElement(RFC1738())
RFC1738() = "ê|%EA"
AddElement(RFC1738())
RFC1738() = "ë|%EB"
AddElement(RFC1738())
RFC1738() = "ì|%EC"
AddElement(RFC1738())
RFC1738() = "í|%ED"
AddElement(RFC1738())
RFC1738() = "î|%EE"
AddElement(RFC1738())
RFC1738() = "ï|%EF"
AddElement(RFC1738())
RFC1738() = "ð|%F0"
AddElement(RFC1738())
RFC1738() = "ñ|%F1"
AddElement(RFC1738())
RFC1738() = "ò|%F2"
AddElement(RFC1738())
RFC1738() = "ó|%F3"
AddElement(RFC1738())
RFC1738() = "ô|%F4"
AddElement(RFC1738())
RFC1738() = "õ|%F5"
AddElement(RFC1738())
RFC1738() = "ö|%F6"
AddElement(RFC1738())
RFC1738() = "÷|%F7"
AddElement(RFC1738())
RFC1738() = "ø|%F8"
AddElement(RFC1738())
RFC1738() = "ù|%F9"
AddElement(RFC1738())
RFC1738() = "ú|%FA"
AddElement(RFC1738())
RFC1738() = "û|%FB"
AddElement(RFC1738())
RFC1738() = "ü|%FC"
AddElement(RFC1738())
RFC1738() = "ý|%FD"
AddElement(RFC1738())
RFC1738() = "þ|%FE"
AddElement(RFC1738())
RFC1738() = "ÿ|%FF"
AddElement(RFC1738())
RFC1738() = #DQUOTE$ + "|%22"
AddElement(RFC1738())
RFC1738() = "<|%3C"
AddElement(RFC1738())
RFC1738() = ">|%3E"
AddElement(RFC1738())
RFC1738() = "&|%26"

Procedure.s rawurlencode(input.s)
  ForEach RFC1738()
      find.s = StringField(RFC1738(), 1, "|")
      repl.s = StringField(RFC1738(), 2, "|")
      ;Debug input + "*" + find + "*" + repl
      input.s = ReplaceString(input, find, repl)
    Next
    ProcedureReturn input
EndProcedure