huidige setup met mogelijk relevante settings ivm character encoding:
MySql 4.0.12
character set: latin1
character sets: latin1 dec8 dos german1 hp8 koi8_ru latin2 swe7 usa7 cp1251 danish hebrew win1251 estonia hungarian koi8_ukr win1251ukr greek win1250 croat cp1257 latin5
PHP 4.4.2
default_charset: no value
Apache 1.3.37
HTTP_ACCEPT_CHARSET: ISO-8859-1,utf-8;q=0.7,*;q=0.7
mbstring:
Multibyte Support: enabled
Japanese support: enabled
Simplified chinese support: enabled
Traditional chinese support: enabled
Korean support: enabled
Russian support: enabled
Multibyte (japanese) regex support: enabled
phpMyAdmin: 2.9.0.3
Language: English (utf-8)
Over deze zaken heb ik weinig controle, geen upgrades mogelijk dus.
De database staat in latin1 alsook al mijn tables en columns (utf-8 pas beschikbaar sinds Mysql 4.1).
Ik heb al wat over character sets en unicode gelezen maar ik kom er niet uit.
Stel ik heb 2 pagina's
-insert.php om een record toe te voegen
-show.php om een record te tonen
Beide pagina's hebben in de head <meta http-equiv="content-type" value="text/html; charset=utf-8" />
Nu als ik een willekeurig aantal Chinese, Arabische of andere exotische karakters ingeef via een html form en insert via php, worden deze karakters tot mijn verbazing:
1. correct in de database ingevoegd (via phpMyAdmin zien ze er correct uit)
2. in de browser ook correct weergegeven
Alles lijkt dus te werken maar ik begrijp niet waarom.
Ik zou verwachten dat ze als ??&4946; ofzo in de database staan. (vermits database latin1 en niet UTF-8)
In mijn php code specifieer ik nergens char sets of gebruik ik ook geen functies ofzo.
Als ik <meta http-equiv="content-type" value="text/html; charset=iso-8859-1" /> in de head zet,
komen ze wel 'fout' in de database te staan, maar worden ze wel correct weergegeven door de browser.
MySql 4.0.12
character set: latin1
character sets: latin1 dec8 dos german1 hp8 koi8_ru latin2 swe7 usa7 cp1251 danish hebrew win1251 estonia hungarian koi8_ukr win1251ukr greek win1250 croat cp1257 latin5
PHP 4.4.2
default_charset: no value
Apache 1.3.37
HTTP_ACCEPT_CHARSET: ISO-8859-1,utf-8;q=0.7,*;q=0.7
mbstring:
Multibyte Support: enabled
Japanese support: enabled
Simplified chinese support: enabled
Traditional chinese support: enabled
Korean support: enabled
Russian support: enabled
Multibyte (japanese) regex support: enabled
phpMyAdmin: 2.9.0.3
Language: English (utf-8)
Over deze zaken heb ik weinig controle, geen upgrades mogelijk dus.
De database staat in latin1 alsook al mijn tables en columns (utf-8 pas beschikbaar sinds Mysql 4.1).
Ik heb al wat over character sets en unicode gelezen maar ik kom er niet uit.
Stel ik heb 2 pagina's
-insert.php om een record toe te voegen
-show.php om een record te tonen
Beide pagina's hebben in de head <meta http-equiv="content-type" value="text/html; charset=utf-8" />
Nu als ik een willekeurig aantal Chinese, Arabische of andere exotische karakters ingeef via een html form en insert via php, worden deze karakters tot mijn verbazing:
1. correct in de database ingevoegd (via phpMyAdmin zien ze er correct uit)
2. in de browser ook correct weergegeven
Alles lijkt dus te werken maar ik begrijp niet waarom.
Ik zou verwachten dat ze als ??&4946; ofzo in de database staan. (vermits database latin1 en niet UTF-8)
In mijn php code specifieer ik nergens char sets of gebruik ik ook geen functies ofzo.
Als ik <meta http-equiv="content-type" value="text/html; charset=iso-8859-1" /> in de head zet,
komen ze wel 'fout' in de database te staan, maar worden ze wel correct weergegeven door de browser.