Omdat ik in een aantal andere applicaties in een latere fase tegen problemen met de encoding aanliep, wil ik dit vanaf nu voorkomen. Ik heb flink wat over encodings gelezen, en ben tot de conclusie dat ik m'n applicatie in de UTF-8 charset wil hebben draaien. Nu heb ik het volgende gedaan om dit te realiseren:
- In de MySQL database heb ik de charset op UTF-8 gezet en de collation op utf8_general_ci
- In de database connection class heb ik de charset op UTF-8 gezet middels:
(MySQLi methode)
- Ik geef aan HTTP output de volgende header mee:
- In de HTML header tag staat het volgende:
- Ik heb de .php bestanden UTF-8 encoded opgeslagen met NetBeans
- De interne encoding heb ik op UTF-8 gezet:
Voor zover ik kan nagaan is nu het volgende allemaal op UTF-8 gezet:
- HTTP input -> PHP
- Bewerkingen string PHP scripts
- Connectie PHP -> MySQL server
- Data in de MySQL database
Mijn grote vraag is nu: Heb ik zo alles goed gezet, of zie ik iets over het hoofd?
En nog een andere vraag, als ik bestanden ga genereren met PHP (lees .pdf, .xls, .csv), moet ik die ook in UTF-8 outputten of in een andere charset?
Ik hoop zo een hoop ellende te voorkomen in de latere ontwikkelfase
Voor zover ik kan testen gaan alle speciale characters (bijv.: éá enz.) goed behalve dit soort:
三寶山 Die floppen in de database, daar worden ze vervangen door een '?'
Waarom die op tweakers.net nou weer wel werken snap ik al helemaal niet... Daar gebruiken ze een ISO charset afaik.
- In de MySQL database heb ik de charset op UTF-8 gezet en de collation op utf8_general_ci
- In de database connection class heb ik de charset op UTF-8 gezet middels:
PHP:
1
| $this->set_charset('utf8') |
(MySQLi methode)
- Ik geef aan HTTP output de volgende header mee:
PHP:
1
| header('Content-Type: text/html; charset=UTF-8'); |
- In de HTML header tag staat het volgende:
HTML:
1
| <meta http-equiv="content-type" content="text/html; charset=utf-8"> |
- Ik heb de .php bestanden UTF-8 encoded opgeslagen met NetBeans
- De interne encoding heb ik op UTF-8 gezet:
PHP:
1
| mb_internal_encoding("UTF-8"); |
Voor zover ik kan nagaan is nu het volgende allemaal op UTF-8 gezet:
- HTTP input -> PHP
- Bewerkingen string PHP scripts
- Connectie PHP -> MySQL server
- Data in de MySQL database
Mijn grote vraag is nu: Heb ik zo alles goed gezet, of zie ik iets over het hoofd?
En nog een andere vraag, als ik bestanden ga genereren met PHP (lees .pdf, .xls, .csv), moet ik die ook in UTF-8 outputten of in een andere charset?
Ik hoop zo een hoop ellende te voorkomen in de latere ontwikkelfase
Voor zover ik kan testen gaan alle speciale characters (bijv.: éá enz.) goed behalve dit soort:
三寶山 Die floppen in de database, daar worden ze vervangen door een '?'
Waarom die op tweakers.net nou weer wel werken snap ik al helemaal niet... Daar gebruiken ze een ISO charset afaik.
[ Voor 8% gewijzigd door bindsa op 16-06-2010 11:44 ]