Lurifaksen Skrevet 22. august 2008 Del Skrevet 22. august 2008 Søkestrengen "æøå" blir av Google encodet til: %E6%F8%E5 - men på Kvasir.no encodes det til: %C3%A6%C3%B8%C3%A5 Noen som har en funksjon som kan decode begge deler tilbake igjen til æøå? Lenke til kommentar
Ernie Skrevet 22. august 2008 Del Skrevet 22. august 2008 (endret) 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 22. august 2008 av Ernie Lenke til kommentar
Lurifaksen Skrevet 22. august 2008 Forfatter Del Skrevet 22. august 2008 (endret) 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 22. august 2008 av Lurifaksen Lenke til kommentar
Ernie Skrevet 22. august 2008 Del Skrevet 22. august 2008 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
Lurifaksen Skrevet 22. august 2008 Forfatter Del Skrevet 22. august 2008 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
Ernie Skrevet 22. august 2008 Del Skrevet 22. august 2008 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
Lurifaksen Skrevet 22. august 2008 Forfatter Del Skrevet 22. august 2008 (endret) 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 22. august 2008 av Lurifaksen Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå