[PHP] é wordt Ã&copy in plaats van é

Pagina: 1
Acties:
  • 284 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Als ik iets insert in mijn MySQL database met de waarden é of ï (nog enkele maar weet ze niet direct) dan worden deze blijkbaar fout gecodeerd! De é's worden namelijk Ã&copy in plaats van é ondanks dat ik geen htmlentities() of dergelijke gebruik. Heeft het hier iets te maken met de character encoding?
Deze staat volgens de PHP functie mb_interal_encoding() op ISO-8859-1.

Noch met UTF-8 werkt het. Ik heb geen flauw idee wat ik hier van moet denken of doen!

Weten jullie raad? :'(

Acties:
  • 0 Henk 'm!

Verwijderd

Komt door je caracter set ofzo ISO, der is volgens mij al een topic over... alleen kon ik um even niet vinden, de oplossing is dus om in je header deze goed te zetten.

Acties:
  • 0 Henk 'm!

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 16:36
Waar vindt de fout precies plaats? Komt het character verkeerd in je database of wordt het verkeerd weergegeven in je uitvoer op de webpagina.
In het laatste geval zul je inderdaad de headers goed moeten sturen richting browsers. In het eerste geval gaat er waarschijnlijk iets mis tussen PHP en mysql, dat ze dus verschillende charactersets gebruiken oid.

Regeren is vooruitschuiven


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het gaat hier wel degelijk om het laatste geval, als ik iets opsla in de database dan is daar al, vooraleer ik het item uitlees, het character fout opgeslagen. Hoe kan ik de charactersets gelijk krijgen? Ik heb geen flauw idee welke characterset MySQL gebruikt.. mijn PHP gebruikt gewoon ISO-8859-1 geloof ik.

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

T-MOB schreef op 02 november 2004 @ 12:45:
In het eerste geval gaat er waarschijnlijk iets mis tussen PHP en mysql
Dat kan zo goed als niet, mysql heeft geen weet van charsets en slaat de data gewoon op zoals ie het van PHP binnen krijgt. Als je dat weer uitleest dan is de data precies hetzelfde zoals je het er ooit in hebt gestopt.

Wat wel kan is dat de input en output charsets verschillen. Dus de waarde is gesubmit met een andere charset dan dan die gebruikt wordt om de uitgelezen waarde weer te tonen.

Wat ik echter raar vind is dat er blijkbaar wel een htmlentities overheen wordt gegooid. Aangezien PHP dat niet zelf doet moet het ergens in jouw code gebeuren.

[ Voor 13% gewijzigd door .oisyn op 03-11-2004 15:38 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
.oisyn schreef op 03 november 2004 @ 15:37:
[...]

Wat ik echter raar vind is dat er blijkbaar wel een htmlentities overheen wordt gegooid. Aangezien PHP dat niet zelf doet moet het ergens in jouw code gebeuren.
In de MySQL database staat é gewoonweg als é, niet als een html character dus.

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

Precies, en dat komt omdat de é geencode wordt als é door de huidige codepage (je browser doet dit bij het versturen van de data)

[ Voor 25% gewijzigd door .oisyn op 03-11-2004 15:49 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het is inderdaad browser afhankelijk, in Firefox heb ik het probleem en in Internet Explorer dus niet... wat kan een mens daar dan aandoen?

Acties:
  • 0 Henk 'm!

  • André
  • Registratie: Maart 2002
  • Laatst online: 12-09 14:32

André

Analytics dude

Gebruik in alles 1 charset, zowel op de server als op de client. Geef vanuit de server ook altijd de juiste charset mee naar de client. En bij voorkeur alles in UTF-8 omdat dat een complete charset is waar alle tekens in staan.

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:29

crisp

Devver

Pixelated

Als je in FF bij Tools->Info kijkt, wat zie je dan staan bij encoding?

Intentionally left blank


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
crisp schreef op 03 november 2004 @ 16:11:
Als je in FF bij Tools->Info kijkt, wat zie je dan staan bij encoding?
Hmm inderdaad! In FF is inderdaad de encoding anders, namelijk UTF-8! Erg vreemd... ik zal anders een mb_internal_encoding('ISO-8859-1'); doen in al men files.

Acties:
  • 0 Henk 'm!

  • André
  • Registratie: Maart 2002
  • Laatst online: 12-09 14:32

André

Analytics dude

Pagina: 1