Avatar billede luctatic Nybegynder
11. december 2006 - 12:45 Der er 7 kommentarer

Encoding i webservices

Er det muligt at ændre på den encoding en webservice returnerer? Jeg tænker på, hvis jeg laver en webservice som returnerer en string som ikke indeholder andet end et &-tegn, så ender den som & når den kommer tilbage til den der kaldte webservicen.


Kald:

        [WebMethod(Description="test.")]
        public string test()
        {
            return "&";
        }


Svar:
<?xml version="1.0" encoding="utf-16"?>
<string xmlns="testnamespace">&amp;</string>


Her var det så at jeg godt ville have svaret til at indeholde & istedet for &amp; - er det muligt?
Avatar billede mikkel_sommer Nybegynder
11. december 2006 - 13:23 #1
Prøv med:

return Server.HtmlDecode("&");
Avatar billede coderdk Praktikant
11. december 2006 - 13:25 #2
Nej, det skal vist encodes når det er XML... Du kan dog få valid XML ved brug at CDATA:

<tag><![CDATA[&]]></tag>

Men så skal det vist være binært, og ikke en string...

Hvorfor er &amp; ikke godt nok? Du kan jo decode den igen...
Avatar billede coderdk Praktikant
11. december 2006 - 13:29 #3
Se hvordan du kan returnere CDATA næsten nederst her:

http://www.thescripts.com/forum/thread176009.html
Avatar billede luctatic Nybegynder
11. december 2006 - 14:27 #4
Problemet er at jeg ikke har kontrol over hvad modtageren gør ved de data jeg sender, så jeg kan ikke encode det, da min kunde nægter at decode det igen.
Jeg sender ham en string som er en CSV fil, semikolon separeret, så når et & bliver omformet til &amp; laver det jo rod i hans parsning af CSV filen.

Det lader til at jeg bliver nød til at lave en text.replace("&","og"); og så må kunden nøjes med at fx "sort & hvid" bliver til "sort og hvid"
Avatar billede coderdk Praktikant
11. december 2006 - 14:33 #5
Det er din kunde det er galt med. & i et ikke-CDATA-felt er ugyldig XML - Den skal encodes til &amp;...
Avatar billede coderdk Praktikant
11. december 2006 - 14:34 #6
Hov, jeg skal vist lære at læse det hele - CSV? Hvad har det med webservices at gøre?!
Avatar billede luctatic Nybegynder
11. december 2006 - 15:25 #7
Firmaet jeg arbejder for har i sin tid besluttet at lade kunden hente info via en webservice, og på et tidspunkt blev det altså omdannet til at han skulle have det som csv, så nu bliver der sendt en string afsted med <string>1;2;3;4;5;6;osv</string> til kunden som han så kan parse.

En overraskende grim løsning, men jeg kan desværre ikke få kunden til at acceptere at modtage noget i rigtig xml, så det stinker jo lidt.
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