URL Encode - Forskelligt output

Tags:    c# php

Hej,

jeg har en php webservice som jeg skal have posted til. Der er så noget sikkerheds-validering, der involverer urlencode.

Mit problem ligger i, at den streng jeg generer i c# ikke matcher den i php.

Så urlencode($variabel) i php
vs HttpUtility.UrlEncode i c#.

Output er meget tæt på ens, det handler "bare" om at PHP laver nogen tegn capital. - I dette tilfælde A og F, når der kommer special tegn.
Eksempel C#: "image=https%3a%2f%2fsecure.";
Eksempel PHP: "image=https%3A%2F%2Fsecure."

Nogen erfaringer / forslag ? (ud over at lave alt til lower case på server som jeg gerne vil undgå for compatibilitet).

Edit: Well giv gerne forslag, nu er problemet da løst... Men hvis der kommer mere sexy forslag snupper jeg nok den i stedet :=).



Indlæg senest redigeret d. 19.08.2011 23:43 af Bruger #10576
6 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 9 karma
Sorter efter stemmer Sorter efter dato
måske du kan bruge det her:
Fold kodeboks ind/udCSharp kode 


fra: http://stackoverflow.com/questions/918019/net-urlencode-lowercase-problem



armen det er jo fantastisk smukt :=)



Måske mig der ikke helt forstår det, men hvorfor bruge regex? Hvorfor ikke bare kalde ".ToUpper()" efter "UrlEncode(value);" så det bliver
"UrlEncode(value).ToUpper()"??



Måske mig der ikke helt forstår det, men hvorfor bruge regex? Hvorfor ikke bare kalde ".ToUpper()" efter "UrlEncode(value);" så det bliver
"UrlEncode(value).ToUpper()"??


fordi han ikke ønsker indholdet af sit content med stort

Eksempel C#: "image=https%3a%2f%2fsecure.";
Eksempel PHP: "image=https%3A%2F%2Fsecure."

så ville "secure" blive stort..



Jeg mente mere at jeg forstår ikke han hellere vil bruge Regex, da den da umiddelbart må være "dyrere" at bruge end en ToLower() eller ToUpper()?
Pointen med at undgå at lave en regex er vel stadig du laver noget på serveren, så hvis man alligevel skal lave den så laver man noget på serveren og hvorfor så ikke tage den umiddelbart (ville jeg tro? - correct me if im wrong) billige løsning og så bruge den case man ønsker sig?



Denne del kører på client, med tolower er jeg nød til at pille i server løsningen, som jeg gerne ville undgå, så kenneth's løsning er lige i vinkel :=)



t