[PHP+Mysql] UTF-8 codering

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Nu moet ik een aantal strings uit een bestandje in mijn mysql database proppen.

Dit bestand is utf8 gecodeerd en in mijn texteditor zit dit er goed uit. Als ik dit bestandje laad en laat weergeven door php dan ziet er goed uit door mijn meta tag.

Mijn mysql database staat ook op utf8-generic-ci.

Wanneer ik echter de string in php laad en deze meteen de database instuur, krijg ik rare characters in de database:
"ü"
dit soort dingen.
Wanneer ik handmatig de a umlaut invoer in de database via phpmyadmin wordt het wel goed weergegeven in de database. Het probleem moet dus ergens liggen bij php die het bestand verkeerd inlaadt.

Hoe kan ik ervoor zorgen dat php de data goed gecodeerd doorstuurt?

Acties:
  • 0 Henk 'm!

  • _eXistenZ_
  • Registratie: Februari 2004
  • Laatst online: 11-09 23:46
http://php.net/manual/en/function.mb-convert-encoding.php :)

[ Voor 70% gewijzigd door _eXistenZ_ op 07-02-2010 23:02 ]

There is no replacement for displacement!


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
_eXistenZ_ schreef op zondag 07 februari 2010 @ 23:01:
Staat je content-encoding metatag op utf8 in je uiteindelijke html-document?
Yup, zowel in de metatag als in de header die door php gemaakt wordt.

De database kan de characters ook aan wanneer ik ze met het handje invoer. Echter als ik het via mijn lees-bestand-voer-aan-database script draai wordt alles vaag.

Acties:
  • 0 Henk 'm!

  • _eXistenZ_
  • Registratie: Februari 2004
  • Laatst online: 11-09 23:46
Had me bericht nog ff aangepast, omdat ik zat dat je file --> php --> db doet, dus helemaal niks te maken hebt met metatags, my bad ;) Lees mijn vorige bericht nog maar even.

There is no replacement for displacement!


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hmm wanneer ik deze gebruik om naar utf8 te hercoderen wordt alles zelfs met de headerdeclaraties weer vaag.

Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Verwijderd schreef op zondag 07 februari 2010 @ 23:03:
[...]


Yup, zowel in de metatag als in de header die door php gemaakt wordt.

De database kan de characters ook aan wanneer ik ze met het handje invoer. Echter als ik het via mijn lees-bestand-voer-aan-database script draai wordt alles vaag.
Metatags / html-headers zijn totaal niet relevant in dit stuk.

Heb je de mysql-verbinding wel op utf-8 ingesteld voordat je iets ging sturen?
Of doe je van te voren nog string bewerkingen op je input ( en dan zonder mb_ functies )?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Gomez12 schreef op zondag 07 februari 2010 @ 23:07:
[...]

Metatags / html-headers zijn totaal niet relevant in dit stuk.

Heb je de mysql-verbinding wel op utf-8 ingesteld voordat je iets ging sturen?
Of doe je van te voren nog string bewerkingen op je input ( en dan zonder mb_ functies )?
De collation staat op utf-8

Verder doe ik inderdaad nog een explode op de string.

Heb em:
code:
1
mysql_query("SET NAMES 'utf8'");


Bedankt!

[ Voor 7% gewijzigd door Verwijderd op 07-02-2010 23:11 ]


Acties:
  • 0 Henk 'm!

  • Tarilo
  • Registratie: December 2007
  • Nu online
Ik denk dat het ligt aan het feit dat je connectie met de database niet UTF-8 geencodeerd is, maar zeker weten doe ik het niet hoor. :P http://dev.mysql.com/doc/...n/charset-connection.html misschien geeft dit meer duidelijkheid.

edit: te laat :P

[ Voor 3% gewijzigd door Tarilo op 07-02-2010 23:11 ]


Acties:
  • 0 Henk 'm!

  • _eXistenZ_
  • Registratie: Februari 2004
  • Laatst online: 11-09 23:46
Zou het niet aan moeten liggen, ik heb het onlangs ook opgelost, zonder aan de dataverbinding te rommelen van MySQL zelf.

There is no replacement for displacement!


Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
_eXistenZ_ schreef op zondag 07 februari 2010 @ 23:16:
Zou het niet aan moeten liggen, ik heb het onlangs ook opgelost, zonder aan de dataverbinding te rommelen van MySQL zelf.
Dan had je waarschijnlijk je dataverbinding al op utf-8 staan en was enkel je input geen utf-8, of je gebruikte wat string functies die er niet voor geschikt zijn.

Met een normaal utf-8 bestand heb je geen mb_convert_encoding nodig ( van welke coding naar welke coding zou je anders willen encoden? )
Pagina: 1