Afwijkende karakters in MySql

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ger Eielts

Ger Eielts

09/12/2015 11:33:01
Quote Anchor link
Hoi
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 ?
 
PHP hulp

PHP hulp

14/05/2024 16:17:42
 
Ivo P

Ivo P

09/12/2015 12:02:47
Quote Anchor link
Eerst moet je al weten in welke karakterset de data stond toen je deze op een of andere manier in je database "plakte".

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.
 
Ger Eielts

Ger Eielts

09/12/2015 14:39:01
Quote Anchor link
Bedankt voor je antwoord.

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.
 
Thomas van den Heuvel

Thomas van den Heuvel

09/12/2015 15:19:39
Quote Anchor link
De character encoding van een tabel kun je alleen straffeloos converteren indien de DATA in die tabellen opgeslagen is in de oorspronkelijke character encoding. Zoals Ivo al aangaf had je dat eigenlijk eerst moeten verifiëren:
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.
 
Ivo P

Ivo P

09/12/2015 15:44:48
Quote Anchor link
en het liefst controleer je dit dus met data die je nieuw invoert. De data die vooraf al in je database stond, is mogelijk onjuist.

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.
 
Ger Eielts

Ger Eielts

10/12/2015 12:50:54
Quote Anchor link
Hartstikke bedankt voor de info. Ik ga er mee aan de slag !
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.