Avatar billede askovdk Nybegynder
15. november 2010 - 20:26 Der er 19 kommentarer og
1 løsning

Hvordan får jeg Æ Ø Å til at virke

Jeg har lagt dette ind på min side: http://www.w3schools.com/php/php_ajax_livesearch.asp

Og det virker også rigtig godt, bortset fra at Æ Ø Å ikke virker, det bliver vist som nogle mærkelige tegn.

Er der nogen der ved hvor problemet ligger, og hvad jeg skal ændre for at få det til at virke med Æ Ø Å ?
Avatar billede claes57 Ekspert
15. november 2010 - 20:33 #1
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1">
i <head>
Avatar billede askovdk Nybegynder
15. november 2010 - 20:41 #2
Det er indsat men virker ikke. F.eks. bliver Besøg til Besøg

I min XML fil, så det rigtigt nok.
Avatar billede keysersoze Ekspert
15. november 2010 - 20:51 #3
http://www.web-dev.dk/post/Korrekt-visning-af-specielle-karakterer-character-encoding.aspx

sørg for at køre med samme encoding over det hele, og helst UTF-8 - det gælder meta, hvordan du gemmer filer etc.
Avatar billede webweaver Praktikant
15. november 2010 - 20:58 #4
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-1"> rettes til <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">, da ISO er forældet.

Du har "besøg" stående i XML filen på den rigtige måde, men når det bliver vist på siden, er det forkert?

Har du prøvet at åbne din XML fil i notesblok og trykke gem som og så skifte fra "ANSI" til UTF-8?
Avatar billede askovdk Nybegynder
15. november 2010 - 21:02 #5
Jeg kan se i min XML fil står der:

<?xml version='1.0' encoding='ISO-8859-1'?>

i toppen, den skal vel også ændres, men til hvad ? har prøvet til:

<?xml version='1.0' encoding='utf-8'?>

Og det virker ikke, så kan den ikke finde noget fra filen mere ? Og fjerner jeg linie helt virker det heller ikke...
Avatar billede askovdk Nybegynder
15. november 2010 - 21:08 #6
Nu fik jeg ændret den til <?xml version='1.0' encoding='utf-8'?> i toppen af min XML fil, og fået gemt XML filen i UTF-8 format

Og indsat denne i min HEAD: <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">

Og de vises stadig ikke rigtig, kan det være noget opsætning på min server ?
Avatar billede webweaver Praktikant
15. november 2010 - 21:21 #7
Nej, det er ikke noget med serveren at gøre.

Har du indholdet fra din XML fil i en variabel?
I såfald kan du prøve $variabel = utf8_encode($variabel);

Det du har i XML filen, er det statisk tekst, som du selv smider ind i den, eller kommer det et andet sted fra?

Du kan evt. prøve at oprette en ny fil og gemme den som UTF-8 med det samme, istedet for ANSI, for at være sikker at den er encodet korrekt.

Og du skal bruge <?xml version='1.0' encoding='utf-8'?> ja :)
Avatar billede askovdk Nybegynder
15. november 2010 - 21:27 #8
Jeg har prøvet at åbne filen og gemme indholdet som UTF-8...

Filen bliver åbnet sådan her: http://www.w3schools.com/php/php_ajax_livesearch.asp , og så det eksempel der hedder The PHP File




Det tekst som er i min XML fil, bliver sat i filen dynamisk sådan her: (uddrag af min kode)
------------------------------

$string="<link>\r\n<title>$titel</title>\r\n<url>$url</url>\r\n</link>\r\n";

if (fwrite($handle, $string) === FALSE)
------------------------------
Avatar billede webweaver Praktikant
15. november 2010 - 22:27 #9
Forresten, ikke bare dit XML dokument, men også de filer hvor scripts udføres, skal også gemmes som UTF-8. Samme fremgangsmetode i Notesblok ...
Avatar billede askovdk Nybegynder
15. november 2010 - 23:21 #10
Har gjort det ved alle filerne, virker stadig ikke, Æ Ø Å virker ikke selvom de er gemt som UTF-8
Avatar billede webweaver Praktikant
15. november 2010 - 23:31 #11
Har du også gemt den fil som XML henter sit indhold fra til UTF-8? Og hvis der er noget fra database, skal du også derind og lave det om til UTF-8 derinde.
Avatar billede askovdk Nybegynder
15. november 2010 - 23:36 #12
jeg har lavet en tom fil, og skrevet informationer ind med Æ Ø Å, og det virker ikke fra filen som jeg selv har lavet og gemt som Æ Ø Å :-( kan der ikke være noget php kode eller noget i de script jeg linker til som ikke kan håndtere æ ø å ?
Avatar billede keysersoze Ekspert
16. november 2010 - 00:09 #13
Serveren kan også sagtens sende i forkert format hvilket også er beskrevet i den artikel jeg linkede til - og desværre har mange danske udbydere valgt at sende i ISO-8859-1 da det er hvad mange af en eller anden grund stadig udvikler til. PHP er desværre ikke min stærke side - men mon ikke det er noget der kan stilles gennem htaccess, se fx; www.askapache.com/htaccess/setting-charset-in-htaccess.html+php+htaccess+charset&cd=1&hl=da&ct=clnk&gl=dk" target="_blank">http://webcache.googleusercontent.com/search?q=cache:zSK-Hm6UaYkJ:www.askapache.com/htaccess/setting-charset-in-htaccess.html+php+htaccess+charset&cd=1&hl=da&ct=clnk&gl=dk
Avatar billede webweaver Praktikant
16. november 2010 - 00:09 #14
Det burde nu bare være at gemme dem med det rigtig tegnsæt.

$string="<link>\r\n<title>$titel</title>\r\n<url>$url</url>\r\n</link>\r\n";

$string = utf8_encode($string);

if (fwrite($handle, $string) === FALSE)

Nogen forskel?

Ved ikke hvordan din kode er bygget ellers, men det skal være den sidste variabel som udskrives på siden, som smides i encode. Så der ikke bliver tilføjet noget til den efterfølgende.
Avatar billede keysersoze Ekspert
16. november 2010 - 00:32 #15
Det er ikke kun et spørgsmål om hvordan filerne gemmes eller hvordan meta er - hvis strømmen af data fra server til klient er forkert i forhold til forventet vil du også kunne opleve problemer.
Avatar billede askovdk Nybegynder
16. november 2010 - 10:15 #16
Løsningen var at sætte følgende ind i .htaccess AddDefaultCharset UTF-8

Nu virker det med Æ Ø Å....


Men alt mit tekst i databasen ligger i ISO... + Alle mine filer, skal de så ændres til UTF-8 format alle mine filer ?

+ kan man sætte noget ind så noget den trækker det ud fra databasen laver den om til UTF-8 så hele min databaseb ikke skal laves om ?

Er det denne jeg skal have ind ? $variabel = utf8_encode($variabel);
Avatar billede keysersoze Ekspert
16. november 2010 - 23:10 #17
Du bør køre med samme encoding over alt - ellers bliver det noget rod. kører databasen og alle andre filer iso kan du måske lade de ting være og kun køre xml-delen som utf men jeg er slet ikke nok inde i PHP/MySQL til at svare på hvordan du bedst kan gøre.
Avatar billede askovdk Nybegynder
17. november 2010 - 22:04 #18
Smid svar begge 2 så i kan få point :-)
Avatar billede keysersoze Ekspert
18. november 2010 - 10:08 #19
svar :)
Avatar billede webweaver Praktikant
23. november 2010 - 13:55 #20
Nå, jeg kan se at eksperten har svigtet mht. til mail igen. Har ikke ikke modtaget nogen opdateringer herfra. Deraf intet svar. Nå men pyt, det går jo nok :)

Og lige for at runde det af med databasen. Du skal også have det som UTF-8 der. Det kan ændres i PhpMyAdmin. Hvis din fil er UTF-8, og dit database indhold stadig er ISO, så vil du også have problemer med diverse tegn. At man så kan lave en workaround i .htaccess er en anden ting. Men bør faktisk ikke være meningen. Gemmer man ALT sit indhold i samme encode, så skal det også nok virke :-)
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