SQL charset/collatie probleem
'k heb een probleem :) (Natuurlijk)
Ik heb te maken met veel gegevens, en veel van die gegevens zijn niet nederlands maar engels maar ook van arabisch en ander exotische talen :P
Dat gaat meestal goed maar soms niet. Soms kom je van die rare tekens tegen die je hele database op zijn kop gooien.
Voorbeeld:
Als ik deze code uitvoer in phpmyadmin krijg ik het gewenste resultaat. Als ik deze query uitvoer met mysql_query (in mijn test script) krijg ik opeens dat hij de complete tabel terug geeft. Hij voert zeg maar de SQL Where niet uit. Want hij geeft alles terug. Dus gewoon SELECT * FROM tabel. Hoe kan dat?
phpmyadmin doet het dus wel goed, maar mijn eigen script niet.
Feitjes:
mysql 4 en 5 (beide zelfde geconfigureerd met charset en collatie)
Collatie: utf8_unicode_ci
Mysql karakter set: utf8_unicode_ci
Verbinddings collatie: utf8_unicode_ci
ook gebruik ik SET NAMES 'utf8';
Het rare is dat het nu in phpmyadmin wel goed doet. Maar in mijn eigen script niet. De query is wel in het goede formaat. Omdat phpmyadmin wel het juiste resultaat geeft denk ik dus dat het ergens in mijn script ligt. Maar wat en waar?
Andere database type is niet mogelijk, dus postgreSQL opmerkingen hebben geen nut ^^
Weet iemand hier antwoord op? Hij geeft (van wat ik nu weet) alleen met dit rare tekentje (Ø) de hele database terug.
De tekentjes zoals ² en ³ doen het ook niet, maar die geven gewoon geen resultaat.
Iemand een oplossing?
De query die ik in de mysql functie pleur is dus de bovenste query. En die moet dus goed zijn. Ook qua codering. Google weet het ook niet. :P
Gewijzigd op 01/01/1970 01:00:00 door Han eev
bump :(
Misschien maakt PhpMyAdmin gebruik van de multibyte extensie?
deze dus: http://nl.php.net/manual/en/ref.mbstring.php
Ik neem aan dat je database en tabellen ook UTF-8 zijn?
edit:
Ik heb ff wat geprobeerd als ik de connectie instel op "UTF-8" dan lukt het niet en krijg ik een query error. Zet in de verbinding op "latin1", dat lukt het wel.
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
Het heeft weinig met html te maken, maar daar staat ook alles op UTF-8 ;-)
Wat inderdaad kan dat phpmyadmin gebruikt maakt van mbstring. Dat ga ik even onderzoeken. Bedankt voor nu. Tabellen en velden zijn allemaal utf-8.
mbstring biedt ook geen uitkomst :(
edit:
'k heb het gevonden! :)
De query die ik in de functie douwde bleek wel goed te zijn HTML-technisch gezien maar niet 'php/code' technisch. Ik heb er utf8_encode overheen gehaald en toen werkte het! Toen snapte mysql het! En gaf hij goed resultaat :)
Bedankt voor reacties!
Gewijzigd op 01/01/1970 01:00:00 door Han eev