Avatar billede kongfjong Nybegynder
07. oktober 2008 - 12:13 Der er 5 kommentarer og
1 løsning

Google Map og encoding problem

Hej, jeg forsøget pt. at få en søgefunktion til at virke på Google Map. Idéen er den, at man søger på en tekst, som der så skal ledes efter i en postgreSQL database. Findes der matches, vises ikoner på kortet ud fra de koordinater der er i den dertil indrettede tabel.

Mit problem er nu, at hvis man bruger søgeformularen på samme side som kortet ligger, fungerer det fint i alle browsere, men når man bruge søgefeltet på forsiden på siden, så fungerer det ikke, når man laver strenge der indeholder æ, ø og å.

Jeg er ret sikker på, at Firefox gør et eller andet ved den indtastede streng, som IE7 ikke gør, når strengen sendes til siden med kortet.

Formularens method er get fordi siden kører med tjek på get-variabel. Når siden med kortet loades, loaded der en javascript-funktion, der loader kortet og samtidigt kører GDownloadUrl funktionen i Google Map API'en, med en url til en php-fil der outputter xml.

Det er faktisk så galt, at hvis man kalder php-filen direkte med den rette get-variabel, selv med de tegn (ASCII) der erstatter æ, ø og å i url'en, så finder den rent faktisk et resultat, bare ikke når man bruger søgefeltet på forsiden.

Har prøvet (næsten formentligt) alt. I GDownloadUrl-funktionen kan man sætte encoding, det har jeg søgt. Når der hentes fra db, sættes clien-encoding til ISO-8859-1, har også forsøgt med UTF-8.

Er der nogen der har oplevet samme problem og derfor kan hjælpe? Er rimeligt desperat hehe :)
Avatar billede olebole Juniormester
07. oktober 2008 - 14:33 #1
<ole>

"sættes clien-encoding til ISO-8859-1, har også forsøgt med UTF-8" >> Hvad gør du for det?

Du skal ændre meta - du skal gemme dokumenterne, kodet med det ønskede tegnsæt - du skal sørge for DB'en bruger samme tegnsæt - og serveren skal sende dokumentet med korrekt tegnsæt.

Er det det, du har gjort?

/mvh
</bole>
Avatar billede kongfjong Nybegynder
07. oktober 2008 - 14:52 #2
Når jeg opretter en forbindelse til db'en, kører jeg en pg_query("SET CLIENT_ENCODING TO 'ISO-8859-1'").

Der er også <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> på alle sider, og header('Content-Type: text/html; charset=ISO-8859-1'); der hvor xml outputtet starter.

Der hvor jeg kan se en konflikt er i databasen, som er UTF-8, hvilket vi ikke kan rette. Det burde dog være nok, at sætte pg_query("SET CLIENT_ENCODING TO 'ISO-8859-1'"), sådan som jeg har forstået det?

http://www.flush-it.dk/public/phpinfo.php
Avatar billede kongfjong Nybegynder
07. oktober 2008 - 14:54 #3
Avatar billede olebole Juniormester
07. oktober 2008 - 15:02 #4
- og hvad gemmer din editor dokumenterne som?
Avatar billede kongfjong Nybegynder
07. oktober 2008 - 15:13 #5
Vesteuropæisk (ISO) er betegnelsen...
Avatar billede kongfjong Nybegynder
10. oktober 2008 - 15:07 #6
Lukket:)
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