PDA

Bekijk Volledige Versie : Problemen met character set



Desmond
11/12/08, 21:59
Mensen,

Ik heb een vaag probleem. Er is een server in Amerika met een website, in dit geval www . 3 form . eu met verschillende europese talen. In de httpd.conf staan keurig alle AddLanguage's en AddCharset's zoals ze standaard in httpd.conf staan. Als je naar deze site gaat en Poland kiest krijg je keurig de site voor je met de juiste characters. In de bron zie je staan

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Keurig helemaal prima.

Nou hebben we in Amsterdam een 'EU Server' opgezet voor deze klant en een tijdelijk omgeving aangemaakt, namelijk dev . 3 form . eu om deze helemaal in orde te maken. De httpd.conf en php.ini zijn identiek en ook de character sets e.d. staan er allemaal in. De php files + MySQL is 1 op 1 gekopieerd zonder wijzigingen.

Nou komt het. Als je naar dev . 3 form . eu gaat en daar Poland kiest krijg je voor sommige tekens vierkantjes! In de code staat OOK utf-8. Al wijzig ik dat naar iso-8859-2 dan nog krijg ik die vierkantjes en vraagtekens. ISO-8859-2 is misschien leuk als het zou werken maar die ondersteund geen arabisch en UTF-8 ondersteund alles. We zijn er al dagen zoet mee, heeft iemand suggesties? Wijzig ik in mijn browser de codering dan werkt het wel...

AddDefaultCharset ISO-8859-2 ook al geprobeerd ondanks dat dit ook niet in de httpd.conf in de US machine staat...

Desmond

systemdeveloper
11/12/08, 22:18
Als je om die betreffende tekst eens het volgende zet:

$youwnieuwetekst = mb_convert_encoding($youwoudetekst, "UTF-8");

of indien de oude encoding niet gedetecteerd wordt (of maybe uit de db) komt:

$youwnieuwetekst = mb_convert_encoding($youwoudetekst, "UTF-8", "XXXXX");
(waarbij XXXXX de encoding in je database is.)

Is de encoding van de tabellen ook hetzelfde als op de andere server? Misschien is het bij de conversie fout gegaan. (Het werkt niet altijd, maar je zou in phpmyadmin het record eens kunnen wijzigen.

Dan zou je toch al ver moeten komen met puzzelen. (Als die data uit de db komt, dan check daar als eerste of de encodings hetzelfde zijn). Ander kun je eventueel nog eens kijken in de mysqldump indien je daarmee de db gevuld hebt. Wellicht is daar bij het exporteren nog iets fout gegaan.

Succes iig.

Desmond
11/12/08, 22:24
De database collatie is identiek aan de US server, die hebben we ook al vergeleken. Ook de versies van MySQL zijn identiek. Ik zal morgen de mb_convert_encoding optie eens een kans geven al zou ik zeggen dat je alles 1 op 1 over zet...

De site is 99% dbase driven ;)

systemdeveloper
11/12/08, 22:32
Mocht je het voor een tabel ooit moeten omzetten:
ALTER TABLE jouwtabel CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Als je dezelfde config hebt, zowel apache, mysql als php.ini, etc... dan kan het bijna alleen maar aan de zooi in de db liggen, zou ik denken. Als ik nog iets tegenkom laat ik je weten.

Desmond
11/12/08, 22:38
Ik ga het testen morgen en keep you informed...

Desmond
12/12/08, 11:45
Geen resultaat helaas...