Avatar billede crapman Nybegynder
15. december 2008 - 15:54 Der er 9 kommentarer og
2 løsninger

8-Bit encoding

Hejsa,
Jeg sidder og koder noget som skal sende sms beskeder via en sms gateway. Det foregår ved at man sender et HTTP GET request til en URL, som så sender beskeden afsted.

Problemet er bare, at beskeden skal sendes afsted som en 8-bit streng for at kunne tage specielle tegn med.

Nu er jeg ved at få grå hår i hovedet af, at finde ud af, hvordan man konverterer en string til 8-bit?

Somebody help!
Avatar billede arne_v Ekspert
15. december 2008 - 16:36 #1
Avatar billede crapman Nybegynder
15. december 2008 - 17:02 #2
det ser som sådan også ud til at virke med ":" og "," men det går galt så snart jeg bruger æ, ø eller å...

Jeg bruger den således:
strMessage = HttpUtility.UrlEncode(strMessage, System.Text.Encoding.ASCII)
Avatar billede crapman Nybegynder
15. december 2008 - 17:02 #3
Og nej, det er selvfølgelig ikke ASCII jeg bruger (skulle bare teste hvordan det så ud).. det jeg gør er:

strMessage = HttpUtility.UrlEncode(strMessage, System.Text.Encoding.UTF8)
Avatar billede kalp Novice
15. december 2008 - 17:13 #4
System.Text.UTF8Encoding UTF8 = new System.Text.UTF8Encoding();
Byte[] BytesMessage = UTF8.GetBytes("Some text");
String StringMessage = UTF8.GetString( BytesMessage );

StringMessage er nu 8bit ??   
evt. benyt dit UrlEncode på "StringMessage" nu?
Jeg tænker bare at UTF8 er vel en 8bit data repræsentation.

Min kode er i c#.
Avatar billede arne_v Ekspert
15. december 2008 - 17:15 #5
strMessage = HttpUtility.UrlEncode(strMessage, System.Text.Encoding.UTF8)

eller

strMessage = HttpUtility.UrlEncode(strMessage, System.Text.Encoding.Default)

boer virke.
Avatar billede crapman Nybegynder
15. december 2008 - 17:27 #6
Arne.. nej det virker ikke :( Som du kan se øverst, så er det også det jeg forsøger. Men om det så er gateway'en der er problemet, er jo så det store spørgsmål.

Kalp: Jeg forsøger at skrive dit eksempel om til vb.net men ved linjen:
Byte[] BytesMessage = UTF8.GetBytes("Some text");
skriver jeg:
Dim bytesMessage As Byte = UTF8.GetBytes(strMessage)
Men får flg. fejl: "Value of type "1-dimentional array of Byte" cannot be converted to "Byte".
Avatar billede kalp Novice
15. december 2008 - 17:44 #7
Dim bytesMessage As Byte() = UTF8.GetBytes(strMessage)
Avatar billede arne_v Ekspert
16. december 2008 - 01:31 #8
Jeg kan ikke lige se, hvor du skriver, at du har forsøgt med System.Text.Encoding.Default ...
Avatar billede crapman Nybegynder
16. december 2008 - 09:07 #9
Det har jeg heller ikke skrevet :) Men den virker heller ikke.. giver samme resultat.

Jeg tror efterhånden jeg er nået frem til at det må være gatewayen, så jeg har skrevet en mail til deres support - så må vi se hvad der sker...

Hvis I smider et svar begge to, så splitter jeg pointene mellem jer, som tak for hjælpen :)
Avatar billede kalp Novice
16. december 2008 - 09:30 #10
=)
Avatar billede arne_v Ekspert
21. januar 2009 - 02:58 #11
.
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
Kurser inden for grundlæggende programmering

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