Gå til innhold

ÆØÅ og urldecoding - forskjellige måter?


Anbefalte innlegg

Videoannonse
Annonse

Det spørs hvilket tegnsett du ønsker det da. %C3%A6%C3%B8%C3%A5 er åpenbart UTF-8, mens jeg antar %E6%F8%E5 er ISO-8859-1. Unicode i form av UTF-8 og single byte tegnsett er ikke akkurat kjent for å være særlig kompatible utenfor ASCI.

Endret av Ernie
Lenke til kommentar

Ja, er ikke så inne på dette med tegnsett. Jeg skal bare sette det inn i en database i en lesbar form for meg (altså tegnsett spiller ikke noe rolle så lenge det er lesbart). Og siden det er snakk om norsk tekst er vel ISO-8859-1 riktige tegnsettet å bruke...

 

Så har noen forslag til hvordan jeg kan konvertere søkestrengen til "normal" tekst?

 

Er i forbindelse med et referer-tracking system... Jeg plukker altså ut søkestrengen fra url'en til refereren, og tydeligvis kan disse ha forskjellige tegnsett.

 

Er kanskje det enkleste å bare manuelt søke og erstatte %C3%A6 til æ, osv? Er jo egentlig kun æøå av spesielle tegn som er aktuelt i søkestrengene.

Endret av Lurifaksen
Lenke til kommentar

Hvis du veit at det er snakk om UTF-8 så kan du bruke utf8_decode og få ISO-8859-1 ut. Eneste er at alt som ikke er UTF-8 eller passer inn i ISO-8859-1 blir til ?, men det er vel ikke et problem?

 

Ev. kan du jo som du selv foreslår søke etter tegnene det er snakk om. Forutsatt gyldig UTF-8 vil de være helt unike. Det eneste er at alle andre Unicode-tegn blir seendes ut helt merkelig ut, og du kan/bør såklart ikke blande tegnsett. Altså, skal du sette det sammen med en ISO-8859-1-streng må du såklart erstatte de tegnene i UTF-8-strengen på forhånd.

Lenke til kommentar
Hvis du veit at det er snakk om UTF-8 så kan du bruke utf8_decode og få ISO-8859-1 ut. Eneste er at alt som ikke er UTF-8 eller passer inn i ISO-8859-1 blir til ?, men det er vel ikke et problem?

Det er akkurat det som er problemet... Søkestrenger med æøå blir riktig fra de fleste søkemotorer blir riktig med utf8_decode, men i søkestrengene fra kvasir får jeg bare ? i stedet for æøå.

 

Tror jeg bare manuelt søker og erstatter jeg... 

Lenke til kommentar
Hvis du veit at det er snakk om UTF-8 så kan du bruke utf8_decode og få ISO-8859-1 ut. Eneste er at alt som ikke er UTF-8 eller passer inn i ISO-8859-1 blir til ?, men det er vel ikke et problem?

Det er akkurat det som er problemet... Søkestrenger med æøå blir riktig fra de fleste søkemotorer blir riktig med utf8_decode, men i søkestrengene fra kvasir får jeg bare ? i stedet for æøå.

 

Tror jeg bare manuelt søker og erstatter jeg... 

Ja, og problemet er at input til utf8_decode MÅ være UTF-8. På grunn av oppbygningen av UTF-8 vil f.eks all tegn fra 80 hexadesimalt i ISO-8859-1 regnes som ugyldig i og med at det mangler korrekte påfølgende byter. Derfor må det tilpasses hver kilde. Det spørs hvordan du får dataene, men et eller annet sted står det vel hvilket tegnsett de bruker? Det kan isåfall brukes til å avgjøre hva man gjør pr. kjøring.

Lenke til kommentar

Tror jeg løste problemet med følgende kode:

 

$encodedlettersUTF8 = array('%C3%A6', '%C3%B8', '%C3%A5', '%C3%86', '%C3%98', '%C3%85');
$encodedletters = array('%E6', '%F8', '%E5', '%C6', '%D8', '%C5');
$letters = array('æ', 'ø', 'å', 'Æ', 'Ø', 'Å');

$string  = str_replace($encodedlettersUTF8, $letters, $string);
$string  = str_replace($encodedletters, $letters, $string);
$string = urldecode($string);

 

Det er jo naturligvis ikke en 100% sikker måte, men det er ikke så nøye for mitt bruk.

Endret av Lurifaksen
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...