Avatar billede nbj1 Praktikant
04. oktober 2007 - 11:05 Der er 17 kommentarer og
1 løsning

php danske tegn igen

Er der ikke en måde at sikre at man altid viser æåø på en server php-mysql er temmelig trals med firkanter i stedet for æøå
evt et script der håndtere det for alle sider ?
Avatar billede darrich Novice
04. oktober 2007 - 14:00 #1
Man fastlægger charset i php, og hvis du har designet således der er en hovedmenu php, som blot includer andre, så kan du håndtere det et sted.

For at sætte charset til dansk kan du anvende med denne php header:

<?php header("Content-type: text/html; charset=ISO-8859-1"); ?>

og anvender du meta på nogle sider så brug:

<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
Avatar billede nbj1 Praktikant
04. oktober 2007 - 14:10 #2
troede det var utf-8 php bruger men lige meget der er ingen problemer på en win dåse men linux hu syntes der ged iden hele tiden med tegn den ene dag virker det fint på en side den næste dag er det galdt med en anden side også afhængig af mysql så det driller med briller
Avatar billede olebole Juniormester
04. oktober 2007 - 19:41 #3
<ole>

Der er ikke så megen fremtid i at bruge iso-8859-1. Det er bedre at vænne sig til at bruge utf-8, men du skal sørge for at gøre det _overalt_.

Undersøg her, hvilket tegnsæt dine sider bliver served med:
    http://validator.w3.org/#validate_by_uri+with_options

- husk at sætte flueben i 'Verbose Output'. Serves de ikke med utf-8, kan du bruge flg. header:
    <?php header("Content-Type: text/html; charset=utf-8") ?>

Det er også vigtigt, du sætter de rigtige kollationer på dine tabeller - det kan du tjekke i phpMyAdmin.

Sidst, men ikke mindst, skal du sørge for at bruge den rigtige meta. Hvis der er tale om et HTML-dokument, ser den sådan ud:
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

- er det et XHTML-dokument, skal du naturligvis vælge den dertil hørende Content-Type.

Læg i øvrigt mærke til, at feltnavne i HTTP-headers er case-sensitive. Det hedder 'Content-Type' med stort C og T  ;o)

/mvh
</bole>
Avatar billede olebole Juniormester
04. oktober 2007 - 19:42 #4
Ups ... vigtigt: Når du i din editor gemmer dine dokumenter, må de ikke gemmes med ANSI-encoding. De skal gemmes som utf-8
Avatar billede nbj1 Praktikant
04. oktober 2007 - 20:18 #5
olebole har testet det link men jeg for en del error nå jeg tester og nogen af de domainer jeg har og tester viser enten utf-8 eller 8859-1 men trods det vises nogle af mine sider stadig [] kanter i stedet for æøå.
i mysql står unicode til dansk utf-8.ci mener jeg det hedder jeg kan ændre &o ... har den skrevet need for æøå
kender du ikke til et script der kan includes i alle dokumneter der omskriver underlige tegn for æøå.
Avatar billede nbj1 Praktikant
04. oktober 2007 - 20:27 #6
eks. jeg har en side hvor der står header...utf-8 som der skal, der så henter oplysningerne fra mysql det som hentes vises forkert æ = firkant men i mysql vises æ fint nok
Avatar billede olebole Juniormester
04. oktober 2007 - 23:48 #7
Jeg forstår ikke så meget af det, du skriver, men du behøver ikke noget script, hvis du bærer dig rigtig ad  :)
Avatar billede nbj1 Praktikant
05. oktober 2007 - 00:00 #8
ok hver php side skal jeg have
header("Content-Type: text/html; charset=utf-8")
det har jeg men vises stadigt forkert
da når jeg henter fra mysql kommer det forkert frem bogstaverne æ ø å
i mysql er alt skrevet med utf-8
når jeg gemmer en fil gemmer jeg i utf-8
hvor er det så lige der sker fejl ?
har det noget med at jeg bruger linux ?
Avatar billede olebole Juniormester
05. oktober 2007 - 00:22 #9
Det ved jeg ikke. Men der er helt sikkert ét eller andet led, der ikke bruger utf-8  :)
Avatar billede johan.o Nybegynder
06. oktober 2007 - 16:12 #10
Hvilket resultat får du hvis du efter din mysql_connect(); skriver...

mysql_query("SET NAMES 'utf8'");

Jeg har oplevet at til trods for at default-character-set er beskrevet i .ini filen, så var det nødvendigt at at lave ovenstående query, for at force utf-8 kommunikation mellem klient og server.

Dokumentation : http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html

Mvh. Johan
Avatar billede olebole Juniormester
06. oktober 2007 - 17:30 #11
Det er rigtigt Johan, men det burde netop fremgå af kollations feltet i phpMyAdmin, hvilket tegnsæt tabellen er sat til. Hvis der her står utf-8, hjælper det ikke noget  :)
Avatar billede johan.o Nybegynder
06. oktober 2007 - 19:34 #12
Ja, i teorien...

Men som det også fremgår af nogle af bruger kommentarene på ovenstående link, og som jeg også har oplevet på egne databaser, så kan den query være nødvendig alligevel.

I min phpMyAdmin kan jeg se at default character set er utf8, forbindelses sammenkøring er utf8, i mine tabeller kan jeg se kollation sat til utf8, i my.ini er default character set utf8 for både klient og server, i php er default character set utf8, alle filer er gemt i utf8, header og meta information er ligeledes sat til utf8, når jeg kører SHOW VARIABLES LIKE 'character_set%'; og SHOW VARIABLES LIKE 'collation%'; i phpMyAdmin siger alle utf8......alligevel opstår der problemer med mindre jeg sætter ovenstående query ind efter min connect(), så fungere alt tilsyneladende fint.

Mvh. Johan
Avatar billede olebole Juniormester
06. oktober 2007 - 20:42 #13
Okay! Er ikke selv stødt ind i problemet, men det er godt at have med i nakken  ;o)
Avatar billede nbj1 Praktikant
07. oktober 2007 - 08:14 #14
og der skette et under, et æ ø å blev født :)
underligt jeg har været henaf den vej før men der fik det ikke nogen indflydelse at sætte mysql_query("SET NAMES 'utf8'");
efter connect
men lige i dette forsøg hvor jeg henter directe fra tabel uden alt andet tekst om tja her kommer det til sin ret TAK
Avatar billede nbj1 Praktikant
07. oktober 2007 - 08:55 #15
så fik jeg styr på det og johan gi lige et svar.
jeg sidder samtidigt og vudere lidt på en ide, jeg ved ikke helt om det kan lade sig gøre, og ved godt at noget af ideen sikkert allerede findes, og bruges.
men kræver flere hoveder med ideer.
benzin priser.. med sms tjeneste, har før lavet appleter til mobil. det jeg lige som har tænkt på er at man modtager en sms på en benzin pris, eks. ok den som så smides direkte i en database og vises på en side ??/ lyder det forrygt ?
Avatar billede johan.o Nybegynder
07. oktober 2007 - 10:15 #16
Kommer her :)

...'lyder det forrygt ?'.... :), ikke til at sige, men god fornøjelse med projektet.

Mvh. Johan
Avatar billede nbj1 Praktikant
07. oktober 2007 - 10:45 #17
tak :)
Avatar billede johan.o Nybegynder
07. oktober 2007 - 10:56 #18
Selv tak :)

Mvh. Johan
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