[PHP & SQL] Charset probleem

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Nic0demus
  • Registratie: September 2007
  • Laatst online: 16-06-2016
Hallo Heren (& Dames)

Ik ben een website aan het ontwikkelen voor een Tsjechische klant, en zoals je misschien weet hebben die een klein beetje anders alfabet dan standaard latijns. Ik heb van alles geprobeerd en het volgende is het resultaat.

De database tabellen hebben een encoding van UTF-8 (zoals ik las dat het zou moeten zijn)

Afbeeldingslocatie: http://i47.tinypic.com/2ptdmog.jpg

Daarbij heb ik in mijn index.php (waar alle pagina's in worden geladen) het volgende staan:
PHP:
1
mysql_set_charset('utf8');



Ook heb ik uiteraard de html-header ook op UTF8 gezet:
HTML:
1
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">


Het resultaat dat ik krijg is als volgt:

Afbeeldingslocatie: http://i45.tinypic.com/15mybma.png

De website kan dus wel de Tsjechische tekens weergeven, want dat gebeurt als ik het rechtstreeks in de html plak. Maar als het uit de lokale WAMP database komt, dan gaat er nog iets mis. Staat er toch iets verkeerd misschien? De collatie is wel overal utf8_general_ci dus ik weet niet wat er mis is.

Iemand een idee?

Life would be so much easier if I had the source code...


Acties:
  • 0 Henk 'm!

  • TheNephilim
  • Registratie: September 2005
  • Laatst online: 09-09 12:00

TheNephilim

Wtfuzzle

Misschien lost dit je probleem op:

PHP:
1
header('Content-type: text/html; charset=utf-8');

Acties:
  • 0 Henk 'm!

  • steffex
  • Registratie: Augustus 2003
  • Laatst online: 12-08 00:24
Even als alle eerste query dit doen:

SQL:
1
SET NAMES 'utf8';


edit:

Zorg er wel voor dat je de database leeg haalt. Iets opslaan via een latin verbinding en dan ophalen via utf8 gaat ook inconsistenties veroorzaken. Dus even truncaten en opnieuw proberen!

[ Voor 57% gewijzigd door steffex op 18-07-2012 13:13 ]


Acties:
  • 0 Henk 'm!

  • CH4OS
  • Registratie: April 2002
  • Niet online

CH4OS

It's a kind of magic

Wellicht helpt het installeren van UTF-8 charsets op de server zelf? :) En volgens mij kan htmlentities anders ook helpen?

[ Voor 26% gewijzigd door CH4OS op 18-07-2012 13:11 ]


Acties:
  • 0 Henk 'm!

  • Nic0demus
  • Registratie: September 2007
  • Laatst online: 16-06-2016
Hey gasten, bedankt voor de reply's.

Ik heb ondertussen (heel toevallig) zelf gevonden wat het was.

ik deed de ...
PHP:
1
mysql_set_charset('utf8');

...heeelemaal bovenaan mijn index.php, zelfs boven de session_start();
niet zo slim achteraf, want dit bleek het probleem te zijn.
Ik heb die regel verplaatst naar vlak vóór de doctype (begin van HTML) en na alle php includes en controller instantiëringen, en toen werkte het wel.
Dit was dus het probleem, voor mensen die dit in de toekomst gaan tegenkomen.
Voor alle veiligheid heb ik ook Steffex's tip nog even gedaan.

Maar nogmaals bedankt, topic kan gesloten worden!

Life would be so much easier if I had the source code...


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
2 keer doen is niet beter 'voor de zekerheid' ofzo dus dat kun je beter achterwege laten, scheelt je een query. Volgens mij voerde je deze functie gewoon uit voordat je de connectie gemaakt had als je zegt dat je deze helemaal bovenin je index.php staat. Als je de error_reporting en display_errors goed had ingesteld dan zou je dit denk ik ook gewoon vanuit php te horen hebben gekregen.

Overigens worden topics hier niet gesloten als jij je antwoord hebt ;)

[ Voor 42% gewijzigd door Cartman! op 18-07-2012 13:44 ]


Acties:
  • 0 Henk 'm!

  • Nic0demus
  • Registratie: September 2007
  • Laatst online: 16-06-2016
oh, die indruk had ik wel, naja, anyways, veel plezier hier nog dan! ;)

Life would be so much easier if I had the source code...

Pagina: 1