Det skal lige siges at min tabeller har utf8_danish_ci :)
Altså, tegnene er ligner sådan slags kinesisk, men det kommer kun fra en af mine tabeller. :)
Min topic tabel viser det rigtige, men min kategori og post tabel viser dem forkert :)
Synes godt om
Slettet bruger
12. august 2011 - 22:40#3
Kan du starte med at tjekke om de tekster du har problemer med, er blevet gemt korrekt i mysql databasen? - Hvis den også viser "kinesiske" tegn her, så må det være den måde du uploader teksterne på der går galt, får det lyder ikke som om der skulle være problemer med at gemme æøå i tabellerne hvis de er sat op til utf8. - Hvis det ser korrekt ud i databasen, så må det være fordi du spytter dem forkert ud i php koden. Bruger du evt. iframes på din side, som måske ikke vises i utf8 og derfor får æøå til at se mærkelige ud? Nu er jeg ikke en php-haj, men du kan også prøve utf8_encode() på teksterne inden du viser dem på din php side, men du siger også du kun har problemet et sted i din php kode.
Jeg kan ikke finde nogen fejl i den fejl jeg poster - den er gemt utf-8 og har et metatag i headeren: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Hmm utf8_encode() ? Hvordan? :)
Synes godt om
Slettet bruger
13. august 2011 - 01:23#6
Jeg kunne forestille mig at når du prøver at vise de data du henter fra databasen med php, så bliver de skrevet ud i f.eks. ISO 8859-1, og da din webside fortæller browseren at siden er utf-8 encoded, så får du æøå skrevet ud som to underlige tegn hver. Så du kunne prøve med utf8_encode($a), hvor $a er en tekst du har hentet fra mysql. Jeg skal ikke kunne sige om der er bedre måder at gøre det på i php.
jeg valgte at prøve igen med set names og set characteres med lidt mere held denne gang - nu indsætter den i det mindste æ ø og å i databasen - og min kategori oversigt viser endda rigtigt nu.
hm.. Desværre hjalp det ikke på min topic eller post tabel - den skiftede bare tegn til ¸Ã�¦ Ã�¸ Ã�¸ Ã�¸ Ã�¦Ã�¸..
Har jo prøvet mysql_query("SET NAMES utf8"); mysql_query("SET character_set_results='utf8′");, men så bliver det rigtige sat ind i databasen, men det der kommer ud er forkert :)
Note: This is the preferred way to change the charset. Using mysql_query() to execute SET NAMES .. is not recommended.
nabeelmoidu at gmail dot com 09-Jun-2008 05:11 Here's an example of how to use this feature : I'm using PHP 5.2.5 from http://oss.oracle.com/projects/php/ I wanted to store arabic characters as UTF8 in the database and as suggested in many of the google results, I tried using mysql_query("SET NAMES 'utf8'"); and mysql_query("SET CHARACTER SET utf8 "); but it did not work. Using the following, it worked flawlessly $link = mysql_connect('localhost', 'user', 'password'); mysql_set_charset('utf8',$link);
Jeg er helt på linje med ronols. Jeg vil dog lige påpege en mulig, men ofte overset, fejlkilde:
Pas på, hvis du bruger phpMyAdmin til at indsætte, rette eller tjekke indsatte data. Gør du det, skal du sikre dig 100%, at alle phpMyAdmins filer indeholder den korrekte charset-meta, samt at dens filer er gemt korrekt.
"problemet er at nu står det korrekte i min database - altså den indsætter å æ ø og ikke mærkelige tegn."
Hvor ved du det fra? Som sagt skal du være påpasselig med, hvad du bygger din iagttagelse på. Bruger du phpMyAdmin, skal du være helt sikker på, den er sat helt korrekt op. Vi har set masser af eksempler på, at phpMyAdmin har kørt iso-8859-1, mens spørgeren var overbevist om, den kørte utf-8.
Ved du objektivt, hvordan din phpMyAdmin er sat op?
Altså, for det første kan jeg jo se at bogtaverne er anderledes - det er ikke mere kinesiske tegn, men ø æ å :)
For det andet kører jeg med Kollation (Collation) utf8_danish_ci - det er så objektivt, som det kan blive, da det er det, som står i min mysql database oplysninger.
"Altså, for det første kan jeg jo se at bogtaverne er anderledes - det er ikke mere kinesiske tegn, men ø æ å"
Nej, det kan du ikke. Data i en database er ikke synlige for det menneskelige øje. Hvis du skal se tegnene, må du bruge et værktøj, der kan tolke data i databasen og fremvise dem. Hvis dette værktøj ikke er korrekt opsat, kan du ikke stole på det, du ser.
Nu prøver jeg for sidste gang: Hvad bruger du til at administrere din database med? Hvis det er phpMyAdmin, ved du så objektivt, hvordan den er sat op - og i så fald, hvordan ved du det?
hmm - jeg vil næsten sige ja og nej, da jeg ikke er 100 % sikker på om jeg objektivt ved hvordan indstillingerne er.
Den måde jeg mener at kunne se det på, er at jeg kan se indstillingerne for hele min mysql.
Hvis jeg så går ind på variabler - server-variabler og indstillinger: character set client utf8 (Global værdi) latin1 character set connection utf8 (Global værdi) latin1 character set database latin1 character set filesystem binary character set results utf8 (Global værdi) latin1 character set server latin1 character set system utf8 character sets dir /usr/share/mysql/charsets/ collation connection utf8_general_ci (Global værdi) latin1_swedish_ci collation database latin1_swedish_ci collation server latin1_swedish_ci
Det ser ud til at du muligvis har ret - der er hvert latin1 :)
- og hvis du kikker i kildekoden i din browser, når en administrationsside (en side, hvor du kan se, oprette, slette og rette data i en tabel) i phpMyAdmin er loaded i din browser, hvordan ser Content-Type meta'en så ud?
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.