Ik mag character sets niet en zij mogen mij niet. Maar ik moet er wel mee werken, dus tja. Mijn pagina's zijn iso-8859-15 en PHP kan via tekstvelden het euroteken binnenkrijgen. Als deze tekst met euroteken moet worden getoond, haal ik er standaard een htmlentities($tekst) overheen zodat speciale entities goed worden weergegeven, ongeacht browser/character set. Nu wil PHP het euroteken pas naar € omzetten zodra ik expliciet in de derde parameter aangeef dat ik iso-8859-15 gebruik, maar is er geen manier om dat global in te stellen voor mijn script? Ik heb geen rechten om php.ini aan te passen, maar ik heb ook geen zin om alle aanroepen van htmlentities af te lopen en te bepalen of ie wel of niet die derde parameter moet krijgen.
Is ini_set() niet de functie die je wil gebruiken?
Het toevoegen van:
Gaat weliswaar prima maar heeft geen effect op de werking van htmlentities() voor zover ik kan zien.
PHP:
1
| ini_set('default_charset', 'iso-8859-15'); |
Gaat weliswaar prima maar heeft geen effect op de werking van htmlentities() voor zover ik kan zien.
Hm, inderdaad, dit gaat alleen over de charset in de output.
Kun je dan de input uit die tekstvelden niet parsen, en direct naar "& euro ;" converteren?
Kun je dan de input uit die tekstvelden niet parsen, en direct naar "& euro ;" converteren?
[ Voor 3% gewijzigd door TheDane op 19-07-2005 11:31 ]
Ik ben het nu alleen tegengekomen bij het euroteken, wat nu als m'n klant straks ontdekt dat er nog meer tekens verkeerd werken? Of is het bekend dat bij iso-8859-15 alleen het euroteken vervelend doet in PHP?TheDane schreef op dinsdag 19 juli 2005 @ 11:30:
Kun je dan de input uit die tekstvelden niet parsen, en direct naar "& euro ;" converteren?
Verschil tussen default iso-8859-1 en iso-8859-15:
Misschien dan toch zin maken om die htmlentities() van een derde parameter te voorzien. Een beetje slimme search&replace should do the trick.Charset Aliases Description
ISO-8859-1 ISO8859-1 Western European, Latin-1
ISO-8859-15 ISO8859-15 Western European, Latin-9. Adds the Euro sign, French and Finnish letters missing in Latin-1(ISO-8859-1).
Of in je library even iets lulligs definieren als
PHP:
1
2
3
4
5
6
7
| $default_charset = 'iso-8859-15'; ini_set('default_charset', $default_charset); function my_htmlentities ($str, $quote_style=ENT_COMPAT) { global $default_charset; return htmlentities ($str, $quote_style, $default_charset); } |
[ Voor 6% gewijzigd door Bosmonster op 19-07-2005 13:26 ]
Pagina: 1