Ik heb een probleem met een site die ik aan het bouwen ben. Ik wil namelijk de simpele string 'Categorieën' goed renderen naar utf-8.
Wat ik heb gedaan:
In mijn index.php
Daarnaast heb ik de meta tag toegevoegd aan mijn template:
In mijn php.ini
Mijn database:
Daarnaast heb ik alle verbindingsvariablen met mysql gecheckt en SET NAMES 'utf8' uitgevoerd als eerste query.
Na het opzetten probeerde ik de string categorieën in te voeren in de database(via een test script in php).
Wanneer ik dit bekijk in de database lijkt het allemaal goed te staan. Maar wanneer ik het daarna weer ophaal krijg ik het beroemde vraagteken.
Blijkbaar was de input string geen UTF-8. Ik heb daarna geprobeerd een bestand aan te maken met dezelfde string en deze op te slaan als UTF-8.
Wederom levert mij dit hetzelfde vraagteken op. Terwijl mijn input toch wel als utf-8 opgeslagen is.
Wat werkt wel?
http://php.net/manual/en/function.utf8-encode.php
Het vreemde vind ik dat ik volgens mij een utf-8 string heb en geen latin?
Wat ik heb gedaan:
In mijn index.php
PHP:
1
| header('Content-type: text/html; charset=UTF-8') ; |
Daarnaast heb ik de meta tag toegevoegd aan mijn template:
HTML:
1
| <meta http-equiv="Content-type" value="text/html; charset=UTF-8" /> |
In mijn php.ini
PHP:
1
| default_charset = UTF-8 |
Mijn database:
SQL:
1
2
3
| CREATE DATABASE development_webshop CHARACTER SET utf8 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT COLLATE utf8_general_ci; ALTER TABLE translation DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; |
Daarnaast heb ik alle verbindingsvariablen met mysql gecheckt en SET NAMES 'utf8' uitgevoerd als eerste query.
Na het opzetten probeerde ik de string categorieën in te voeren in de database(via een test script in php).
PHP:
1
| $d->execute("UPDATE translation SET value = 'categorieën' WHERE id = 1"); |
Wanneer ik dit bekijk in de database lijkt het allemaal goed te staan. Maar wanneer ik het daarna weer ophaal krijg ik het beroemde vraagteken.
Blijkbaar was de input string geen UTF-8. Ik heb daarna geprobeerd een bestand aan te maken met dezelfde string en deze op te slaan als UTF-8.
PHP:
1
| $d->execute("UPDATE translation SET value = '" . file_get_contents('test.txt') . "' WHERE id = 1"); |
Wederom levert mij dit hetzelfde vraagteken op. Terwijl mijn input toch wel als utf-8 opgeslagen is.
Wat werkt wel?
http://php.net/manual/en/function.utf8-encode.php
Het vreemde vind ik dat ik volgens mij een utf-8 string heb en geen latin?