Afwijkende karakters in MySql
Ik wil Umlauts, Ringelessen enz. weergeven in de browser.
Begrepen heb ik, dat de charsets van zowel MySql als PHP(html) op elkaar
aan moeten sluiten, echter hoe doe ik dat?
In het veld van de tabellen in MySql zijn gegevens geplakt in het Duits
en ze worden in PHPMyAdmin keurig weergegeven, bv. met de Umlaut.
Ik heb de collatie van het betreffende veld gezet op "latin1_german1_ci".
In een css heb ik aan het begin van het bestand staan: @charset "UTF-8";
Echter wordt in de browser GEEN goede weergave van de Umlaut gegeven. Waar
doe ik het fout ?
En ook hoe de verbinding tot die database stond, en wat je vooraf vertelde tegen mysql toen je de tabellen maakte welke karakterset opgeslagen moest worden.
En net zo'n verhaal voor het weer ophalen.
http://wiki.pfz.nl/charactersets
---
Lijkt met trouwens dat het css bestand niet met het weergeven van de karakterset te maken zou moeten hebben.
en collatie op latin en dan later weer voor utf8 kiezen? klopt ook niet.
Jouw link zette me op het spoor om de database en de tabellen te wijzigen met
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;
Nu zijn de weergaven in de browsers van pc/laptop ok, maar weer niet op
een Galaxy Alpha, maar dat is een probleem voor een ander forum.
Bedankt zover.
Quote:
Eerst moet je al weten in welke karakterset de data stond toen je deze op een of andere manier in je database "plakte".
Simpelweg omdat dingen nu correct worden weergegeven wil ook niet zeggen dat ze met de juiste character encoding staan opgeslagen. Allereerst moet je naar een kloppende situatie toe waarin (bij sterke voorkeur) alle character encoderingen in de pas lopen:
- het HTML document via meta-tag of PHP header()
- de datbase-connectie via een _set_charset() functie
- de database/tabel/kolom definities
- en last but not least: de DATA in de tabellen zelf
Maak eerst dat alles in orde, en kijk dan of alles nog goed wordt weergegeven. Als dat niet het geval is dan is de DATA in je database in ieder geval niet UTF-8 (of liever gezegd utf8 in MySQL) geëncodeerd.
Je applicatie nu aanpassen aan deze oude data veroorzaakt mogelijk dat data die je later via een form invoert niet meer juist wordt weergegeven, omdat je applicatie geschreven is met de verwachting dat de data corrupt is.
Hartstikke bedankt voor de info. Ik ga er mee aan de slag !