/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
URL decoding - encodeURIComponent
Fra : A B C


Dato : 13-09-06 08:38

Jeg har problemer med at få PHP til at decode min query string
korrekt.

I Javascript bruger jeg for eksempel dette:

   encodeURIComponent("¤ é"))

Det resulterer i:

   %C2%A4%20%20%20%20%C3%A9

Når PHP så decoder URLen bliver det til dette i stedet for:

   Â¤ é

Hvorfor i alverden det? Og hvordan løser jeg det?

Umiddelbart ville jeg sige at encodeURIComponent() gør det forker -
fordi escape() gør det nemlig korrekt - men alle steder på nettet
læser jeg at man hellere skal bruge encodeURIComponent() fordi den kan
håndtere unicode og er nyere osv. Så jeg er helt forvirret nu!


 
 
Jesper Brunholm (13-09-2006)
Kommentar
Fra : Jesper Brunholm


Dato : 13-09-06 09:01

A B C skrev:
> Jeg har problemer med at få PHP til at decode min query string
> korrekt.
>
> I Javascript bruger jeg for eksempel dette:
>
>    encodeURIComponent("¤ é"))
>
> Det resulterer i:
>
>    %C2%A4%20%20%20%20%C3%A9
>
> Når PHP så decoder URLen bliver det til dette i stedet for:
>
>    Â¤ é
>
> Hvorfor i alverden det? Og hvordan løser jeg det?

Det ligner at der er et sprog og tegnsæt, i spil når du laver encodeURI
og et andet når du laver decode. Det kunne fx være UTF8 og ISO 8859-1
charsettene. Prøv om du kan kontrollere en eller begge transformationer
hvad charset angår...

mvh

Jesper Brunholm

A B C (13-09-2006)
Kommentar
Fra : A B C


Dato : 13-09-06 11:25

>> Jeg har problemer med at få PHP til at decode min query string
>> korrekt.
>>
>> I Javascript bruger jeg for eksempel dette:
>>
>>    encodeURIComponent("¤ é"))
>>
>> Det resulterer i:
>>
>>    %C2%A4%20%20%20%20%C3%A9
>>
>> Når PHP så decoder URLen bliver det til dette i stedet for:
>>
>>    Â¤ é
>>
>> Hvorfor i alverden det? Og hvordan løser jeg det?
>
>Det ligner at der er et sprog og tegnsæt, i spil når du laver encodeURI
>og et andet når du laver decode. Det kunne fx være UTF8 og ISO 8859-1
>charsettene. Prøv om du kan kontrollere en eller begge transformationer
>hvad charset angår...

Tjaaaa, når jeg kører en utf8_decode() på værdien i PHP (dvs. f.eks.
ovenstående "mærkelige" output) får jeg faktisk det rigtige resultat.
Så det ser ud til at jeg bare skal køre alle værdier fra $_GET igennem
denne funktion. Spørgsmålet er så bare om det er en solid løsning?!
Det kræver jo at input ALTID skal komme i UTF-8....


Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste