Avatar billede celal Nybegynder
25. juni 2008 - 15:06 Der er 6 kommentarer og
2 løsninger

Problemer med URL encoded

Jeg skal have sendt noget til en server, som bruger argumenterne i urlen til at lager noget data. Problemet er at der i urlen også indeholder æøå, som serveren indtager som tegnet ?.
Jeg har prøvet med følgnde:

strAccRef=replace(strAccRef, " ", "%20")
strAccRef=replace(strAccRef, "Æ", "%C6")
strAccRef=replace(strAccRef, "æ", "%E6")
strAccRef=replace(strAccRef, "Ø", "%D8")
strAccRef=replace(strAccRef, "ø", "%F8")
strAccRef=replace(strAccRef, "Å", "%C5")
strAccRef=replace(strAccRef, "å", "%E5")

Men jeg får stadig "?" tegnet når æøå indtræffer i et ord. Nogen som ved hvordan jeg
Avatar billede cpufan Juniormester
25. juni 2008 - 15:12 #1
strAccRef = Server.URLEncode(strAccRef)
Avatar billede pidgeot Nybegynder
25. juni 2008 - 15:19 #2
...og hvis modtagerserveren stadig får et ?, så tyder det på at den forventer UTF-8 - så skal du konvertere fra dit tegnsæt inden du laver encodingen.
Avatar billede celal Nybegynder
26. juni 2008 - 09:13 #3
Jeg har prøvet med følgende:

strAccRef=replace(strAccRef, " ", "%20")
strAccRef=replace(strAccRef, "Æ", Server.UrlEncode("Æ") )
strAccRef=replace(strAccRef, "æ", Server.UrlEncode("æ") )
strAccRef=replace(strAccRef, "Ø", Server.UrlEncode("Ø") )
strAccRef=replace(strAccRef, "ø", Server.UrlEncode("ø") )
strAccRef=replace(strAccRef, "Å", Server.UrlEncode("Å") )
strAccRef=replace(strAccRef, "å", Server.UrlEncode("å") )


Jeg får stadig et ?.

Pidgeot, Hvad menner du med "konvertere fra dit tegnsæt inden du laver encodingen."?
Er det ikke det jeg gøre ved at bruge Server.URLEncode?
Avatar billede pidgeot Nybegynder
26. juni 2008 - 09:54 #4
Du skal sende hele din streng til URLEncode, ikke kun lige de enkelte tegn.

Og nej, du konverterer ikke fra dit tegnsæt til UTF-8. Du konverterer nogle tegn så de er formateret på en måde så de kan bruges i en URL - men det betyder ikke du bruger UTF-8. ;)

Det korte af det lange er at du skal starte med at konvertere til UTF-8, og bagefter kalde UrlEncode på hele strAccRef. Der er en funktion til at lave UTF-8 på http://www.codetoad.com/asp_utf8.asp, men den forventer din URL er ISO-8859-1 - det er den sandsynligvis.
Avatar billede celal Nybegynder
26. juni 2008 - 13:15 #5
Jeg har prøvet som du skrev med følgende:

strAccRef = strAccRef & "&acc_Navn=" & rs("Navn")
strAccRef = strAccRef & "&acc_Stilling=" & rs("Stilling")
strAccRef = strAccRef & "&acc_Firmanavn=" & rs("Firma")
strAccRef = strAccRef & "&acc_Adresse=" & rs("Adresse")
strAccRef = strAccRef & "&acc_Postnummer=" & rs("Postnummer")
strAccRef = strAccRef & "&acc_Telefon=" & rs("Telefon")

strAccRef = EncodeUTF8(strAccRef)
strAccRef = Server.UrlEncode(strAccRef)
strAccRef=replace(strAccRef, "%26", "&" )


Kodem giver mig følgende url:
http://www.XXX/addeuser.cfm?email=44gsk@hk.dk%26acc%5FNavn%3DGert+hansen%26acc%5FStilling%3D%26acc%5FFirmanavn%3D%26acc%5FAdresse%3D%26acc%5FPostnummer%3D%26acc%5FTelefon%3D

Problemet er at & tegnet som adskiller felterne bliver lavet om til %26, og dermed bliver variablen også lavet om, er ikke sikker på om serveren læser dette korrect?
Avatar billede pidgeot Nybegynder
26. juni 2008 - 14:13 #6
Det gør den ikke - og derfor du skal køre UrlEncode på de individuelle komponenter når du tilføjer dem

(Du sagde jo intet om sammenhængen, så vi kunne jo ikke vide du havde mere end en parameter med)
Avatar billede celal Nybegynder
26. juni 2008 - 14:50 #7
Ok, så har jeg fået det til at virke med følgende kode:

strAccRef = strAccRef & "&acc_Navn=" & Server.UrlEncode(EncodeUTF8(rs("Navn")))
strAccRef = strAccRef & "&acc_Stilling=" & Server.UrlEncode(EncodeUTF8(rs("Stilling")))
strAccRef = strAccRef & "&acc_Firmanavn=" & Server.UrlEncode(EncodeUTF8(rs("Firma")))
strAccRef = strAccRef & "&acc_Adresse=" & Server.UrlEncode(EncodeUTF8(rs("Adresse")))
strAccRef = strAccRef & "&acc_Postnummer=" & Server.UrlEncode(EncodeUTF8(rs("Postnummer")))
strAccRef = strAccRef & "&acc_Telefon=" & Server.UrlEncode(EncodeUTF8(rs("Telefon")))
strAccRef=replace(strAccRef, " ", "%20")

Tak for hjælpen Pidgeot. Hvis du vil have point må du lige svare .
Avatar billede pidgeot Nybegynder
26. juni 2008 - 14:52 #8
Giv halvdelen til cpufan - det han kom med er mindst lige så vigtig en del af at få det til at virke helt korrekt :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester