bjeffbjeff Skrevet 29. januar 2010 Del Skrevet 29. januar 2010 Hei Jeg har en string med en beskjed som inneholder æ ø å som skal sendes til en sms-gateway. All tekst må være ISO(ikke utf8), i php bruker man utf8_decode(). Men jeg klarer ikke å finne ut hvordan jeg skal gjøre det med Webclient. Har prøvd dette blant annet. wc.Headers.Add("CharSet", "ISO-8859-1"); Stringen er helt riktig når man printer den i en messagebox f.eks, men ikke når meldinga kommer frem til mottaker. ø blir '??' i meldinga. Er det noen som vet hva jeg må gjøre for at det skal bli riktig ? Lenke til kommentar
GeirGrusom Skrevet 29. januar 2010 Del Skrevet 29. januar 2010 Bruk MyWebClientObject.UploadData("http://www.somesite.com", System.Text.Encoding.ASCII.GetBytes("Hello ASCII World!")); for eksempel. Lenke til kommentar
bjeffbjeff Skrevet 29. januar 2010 Forfatter Del Skrevet 29. januar 2010 Takk for svar. Jeg har prøvd noen varianter av det du foreslår, men får det ikke til enda. Slik ser koden ut (burde postet det i første omgang) string serverRequest = "http://127.0.0.1/sendsms.php"; serverRequest += "?username=" + this.username; serverRequest += "&password=" + this.password; serverRequest += "&customer_id=" + this.customer_id; serverRequest += "&recipient=" + recipient; serverRequest += "&message=" + message; serverRequest += "&sender=" + this.sender; try { using (WebClient wc = new WebClient()) { serverResult = wc.DownloadString(serverRequest); } } Den gir meg kun "??" etc isteden for æøå. har prøvd blant annet denne metoden på string message public string Utf8Decode(string input) { return Encoding.GetEncoding("iso-8859-1").GetString(Encoding.UTF8.GetBytes(input)); } Men det funker heller ikke. Har du noen forslag? Dyr feilsøking dette her Lenke til kommentar
MailMan13 Skrevet 29. januar 2010 Del Skrevet 29. januar 2010 (endret) Å konvertere mellom tegnsettene slik som det der vil ikke forandre noe, de alfanummeriske tegnene vi bruker er like i både utf8 og iso-8859-1, så det som går ut vil være helt likt det som kommer inn. Skal du legge den i querystring på den måten må du sikkert URL-enkode det og legge til "encoding=8859-1" content-type i http headeren. wc.Encoding = "ISO-8859-1"; serverRequest = HttpUtility.UrlEncode(serverRequest , GetEncoding("ISO-5589-1")); serverResult = wc.DownloadString(serverRequest); Endret 29. januar 2010 av MailMan13 Lenke til kommentar
bjeffbjeff Skrevet 30. januar 2010 Forfatter Del Skrevet 30. januar 2010 (endret) Hjertelig takk MailMan! Det virket veldig bra.. Jeg leste om urlencode tidligere i dag, men fant den ikke i system.web, men måtte bare referere til den så kom den.. Fungerende kode ser slik ut nå: serverRequest += "&message=" + System.Web.HttpUtility.UrlEncode(message,Encoding.GetEncoding(28591)); Endret 30. januar 2010 av bjeffbjeff Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå