PDA

Bekijk Volledige Versie : Encoding php / mysql



Jeroen Heijmans
19/02/08, 15:35
Hya,

Mijn website http://mcu.ff.fm/ staat sinds kort op een andere server.

Op mijn eigen server draait alles onder UTF-8, maar op die server niet.

Ik heb echter in de pagina's o.a. hetvolgende gezet:
header("Content-Type: text/html;charset=utf-8");
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

Als ik de info van mijn pagina's oproep, dan lijkt het erop dat deze idd.
in UTF-8 staat.

Echter de gegevens die uit de MySQL-database worden gehaald, worden is
ISO-8859-1 getoond. Een voorbeeld is te zien op http://tinyurl.com/2vo7ut
bij Wölper Löwen. Verander de encoding naar ISO-8859-1 en de naam van de
vereniging klopt wel.

Als je echter de taal van de site in het Spaans verandert (link 'es'),
dan zie je dat de rest van de tekst niet meer klopt.

Kijk in in de database via phpMyAdmin dan zie ik hetvolgende staan:
MySQL Karakterset: UTF-8 Unicode (utf8)
MySQL verbindingscollatie: utf8_unicode_ci

Bij de database, tabellen en velden staat bij alle tekst ook
utf8_unicode_ci ingesteld.

Wie heeft er een tip voor me?

Groetjes,

Jeroen Heijmans

Jeroen Heijmans
19/02/08, 16:35
On Tue, 19 Feb 2008 15:31:12 +0100, Jeroen Heijmans wrote:

> Ik heb echter in de pagina's o.a. hetvolgende gezet:
> header("Content-Type: text/html;charset=utf-8"); <meta
> http-equiv="Content-Type" content="text/html; charset=UTF-8">
>
>
> Echter de gegevens die uit de MySQL-database worden gehaald, worden is
> ISO-8859-1 getoond. Een voorbeeld is te zien op
> http://tinyurl.com/2vo7ut bij Wölper Löwen. Verander de encoding naar
> ISO-8859-1 en de naam van de vereniging klopt wel.
>
> Wie heeft er een tip voor me?

Via andere weg gekregen:

utf8_encode

http://nl.php.net/manual/en/function.utf8-encode.php

En het werkt nu allemaal zoals ik wil.


Groetjes,

Jeroen Heijmans

Rik Wasmus
19/02/08, 16:55
On Tue, 19 Feb 2008 15:31:12 +0100, Jeroen Heijmans <ffchat@gmail.com>
wrote:

> Hya,
>
> Mijn website http://mcu.ff.fm/ staat sinds kort op een andere server.
>
> Op mijn eigen server draait alles onder UTF-8, maar op die server niet.
>
> Ik heb echter in de pagina's o.a. hetvolgende gezet:
> header("Content-Type: text/html;charset=utf-8");
> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
>
> Als ik de info van mijn pagina's oproep, dan lijkt het erop dat deze idd.
> in UTF-8 staat.
>
> Echter de gegevens die uit de MySQL-database worden gehaald, worden is
> ISO-8859-1 getoond. Een voorbeeld is te zien op http://tinyurl.com/2vo7ut
> bij Wölper Löwen. Verander de encoding naar ISO-8859-1 en de naam van de
> vereniging klopt wel.
>
> Als je echter de taal van de site in het Spaans verandert (link 'es'),
> dan zie je dat de rest van de tekst niet meer klopt.
>
> Kijk in in de database via phpMyAdmin dan zie ik hetvolgende staan:
> MySQL Karakterset: UTF-8 Unicode (utf8)
> MySQL verbindingscollatie: utf8_unicode_ci
>
> Bij de database, tabellen en velden staat bij alle tekst ook
> utf8_unicode_ci ingesteld.
>
> Wie heeft er een tip voor me?

Als eerste query naar de MySQL connectie stuur je het volgende naar de db:
SET names= 'utf8'

... en wees er natuurlijk zeker van dat je tabellen ook daadwerkelijk een
utf-8 karakter set hebben, dat kan op kolom nivieau, dus gebruik voor de
zekerheid een 'SHOW FULL COLUMNS FROM tabelnaam' om dit te controleren.

Verder zou ik via de iconv_ instellingen ervoor zorgen dat PHP ook
gegarandeerd alles als UTF8 ziet, zie <http://nl2.php.net/iconv>
--
Rik Wasmus