Avatar billede ostehamster Nybegynder
14. august 2010 - 13:47 Der er 3 kommentarer og
1 løsning

Problem med urlencode/urldecode

Hej

Jeg har en php fil med
<?php
echo urlencode('ø');
?>

Jeg forventer at det skulle udskrive %F8, men jeg får %C3%B8. Filen er gemt i UTF-8 format. Gemmer jeg filen i ISO-8859-15 format, udskrives %F8.

I min .htaccess fil har jeg "AddDefaultCharset utf-8" og headeren i svaret fra serveren har "Content-Type: text/html; charset=utf-8", så serveren burde vel være klar over at den skal læse ø'et som en unicode karakter.

Nogen ide til hvad jeg gør galt?

/Christoffer
Avatar billede olsensweb.dk Ekspert
14. august 2010 - 14:40 #1
du forsøger at lave en url encode på en char, skal være en string
http://dk.php.net/urlencode

<?php
echo urlencode("jørn");
echo urlencode("ø");
?>
Avatar billede olsensweb.dk Ekspert
14. august 2010 - 14:44 #2
glem #1
Avatar billede ostehamster Nybegynder
14. august 2010 - 14:51 #3
Det gør ingen forskel, resultatet bliver det samme.

Og jeg har lige fundet ud af, at PHP opfører sig helt som det skal, det er bare mig der kigger i en forkert tabel. 'ø' i UTF-8 ER C3 B8, mens det er F8 i Latin 1.

Mit problem er nu, at rigtig mange linker til min side med danske bogstaver encoded i Latin 1, mens jeg vil have det som UTF-8, så må lige bygge en lille parser :)
Avatar billede intenz Novice
15. august 2010 - 12:02 #4
Hvis du skal ændre encoding kan du bruge mb_detect_encoding til at finde ud af hvilken encoding der er brugt.
http://php.net/manual/en/function.mb-detect-encoding.php

Og iconv til at ændre encoding fra a til b.
http://php.net/manual/en/function.iconv.php
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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