webForumDet fria alternativet

Url.encode funkar inte? åäö?

11 svar · 3 718 visningar · startad av clacke

clackeMedlem sedan feb. 2003234 inlägg
#1

Har ett sms skript där jag skickar ett meddelande med:

    document.getElementById("iframe").innerHTML =
      "<iframe src='http://www.webbsida.se/skicka_sms.asp?meddelande="+med+"&skickatfran="+s+"&mobilnr="+m+"&konto="+k+"&losenord="+l+"' width='100%' height='100%' scrolling='auto'></iframe>";

och sidan som tar emot :
[kod]

<% Response.CodePage = 65001
Response.CharSet = "UTF-8"

Dim konto, losenord, sms, fran, till
dim route,callback
dim skickat_fran,mobilnr,meddelande

	

meddelande = Server.URLEncode(replace(request("meddelande"), "'", "''"))

%>

När jag skriver ut meddelandet på den sidan som tar emot medelandet, så skriver den ut rätt åäö, men när jag skickar meddelandet vidare till sms servern så blir sms,et som jag får med konstiga bokstäver?

voigtann1Medlem sedan juni 20019 519 inlägg
#2

Varför kör du en encode på en querystring som redan är "encodat"? Vad är det för konstiga tecken du får?

clackeMedlem sedan feb. 2003234 inlägg
#3

För att jag trodde det skulle vara så :-)
Alla å blir tex Y med 2 streck igenom!

spangoMedlem sedan juni 20008 205 inlägg
#4

clacke skrev:

Alla å blir tex Y med 2 streck igenom!

Klassiskt exempel på när UTF-8 tolkas som Latin-1. Hur ser anropet till SMS-servern ut?

clackeMedlem sedan feb. 2003234 inlägg
#5

Hej Spango, du verkar vara min hjälp från dårhuset :-)

Sidan som skickar till sms servern ser ut så här:

Dim getsmsstatus,sendsms,splitstatus
	sendsms="http://server88.msgtool.com/api/current/send/message.php?password="&losenord&"&username="&konto&"&message="&sms&"&from="&fran&"&to="&till&"&route="&route&""
	
	Set getsmsstatus=CreateObject("WinHttp.WinHttpRequest.5.1")
	getsmsstatus.Open "GET", sendsms, False
	getsmsstatus.Send
	splitstatus=split(getsmsstatus.ResponseText,",")
	if splitstatus(0) =1 then
	Response.Write("Message sent to Gateway. msgid: " &_
	splitstatus(1)&"<br>")&_
	Response.Write ("Smset är skickat! <br>")
	response.write skickat_fran&"<br>"
	response.write meddelande
	Else
	Response.Write("Error. ErrorCode: " &_
	splitstatus(1)&"<br>")&_
	Response.Write ("Smset är inte skickat! <br>")
	End If

Variablerna i länken tas emot från den sidan man skickar ifrån, inget konstigt där!

spangoMedlem sedan juni 20008 205 inlägg
#6

Då avkodar din tjänsteleverantör med fel teckenkodning. Fråga deras support hur du ska göra när du skickar Unicode.

clackeMedlem sedan feb. 2003234 inlägg
#7

Menar du att dom inte avkodar med UTF-8?
Dom säger att man ska använda UTF-8, vilket jag gör.
Jag har testat att spara dokumenten i UTF-8 och satt encoden till det också, likadant med latin1 men inget funkar.

TroxyMedlem sedan mars 20041 505 inlägg
#8

Nu måste vi hålla isär saker och ting här :)
Jag reagerar på Javascriptet:

clacke skrev:

    document.getElementById("iframe").innerHTML =
      "<iframe src='http://www.webbsida.se/skicka_sms.asp?meddelande="+med+"&skickatfran="+s+"&mobilnr="+m+"&konto="+k+"&losenord="+l+"' width='100%' height='100%' scrolling='auto'></iframe>";

Exakt vad innehåller alla variablerna med, s, m mfl.?
Dessa måste kodas med Js-funktionen encodeURIComponent() innan dom petas in i HTML-koden.
URLer får nämligen bara innehålla ASCII-tecken.
På ASP-serversidan ska du inte behöva göra något alls, bara läsa med Response.Querystring.

clackeMedlem sedan feb. 2003234 inlägg
#9

Hej Troxy
Variablerna ser ut så här och hämtar bara vanliga textarea values där man skriver text:

var med = form1.meddelande.value;

Jag provade att lägga in encodeURIComponent så här i länken men det funkade inte, hur ska man göra?

    document.getElementById("iframe").innerHTML =
      "<iframe src='http://www.webbsida.se/skicka_sms.asp?meddelande="+encodeURIComponent(med)+"&skickatfran="+s+"&mobilnr="+m+"&konto="+k+"&losenord="+l+"' width='100%' height='100%' scrolling='auto'></iframe>";
TroxyMedlem sedan mars 20041 505 inlägg
#10

clacke skrev:

Jag provade att lägga in encodeURIComponent så här i länken men det funkade inte

Vad funkar inte?

clackeMedlem sedan feb. 2003234 inlägg
#11

Det blev fortfarande konstiga åäö!

Har provat att lägga in det på:

var med = encodeURIComponent(form1.meddelande.value);

också men det blir inte rätt ändå!

TroxyMedlem sedan mars 20041 505 inlägg
#12

Okej, kan du posta exakt vilka tecken du får som resultat?
Pröva att skicka t.ex. bokstaven ö och inget annat.

134 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)