mb_strtoupper() zou mogelijk wel werken?
Maar waarom gebruik je na je strtoupper nog een ucfirst? Je hebt overal al de hoofdletters, dus waarom zou je het nogmaals proberen op de eerste letters?
Welkom in de wondere wereld van character encoderingen.
Hoe luidt de waarde van strtoupper(bin2hex($naaminbeeld)) van de naam "Vajèn Bomen"?
Als deze verschilt van 56616[color=#ff0000]AC3A[/color]86E20426F6D656E (edit: er vanuit gaande dat je overal netjes UTF-8 gebruikt) dan is je data verkeerd geëncodeerd, wat mogelijk kan verklaren waarom een niet herkenbaar karakter niet vertaald wordt naar zijn uppercase equivalent.
NB de latin1 variant zou 56616[color=#ff0000]AE[/color]86E20426F6D656E (als je nog met ISO-charsets werkt) moeten luiden.
AC3A is correct (UTF-8). De è zou dan gewoon in een È veranderd moeten worden.
Wellicht is er iets anders aan de hand? Bestand of code niet goed geupdate? Kijk je per ongeluk op de verkeerde plaats? Verouderde pagina-cache? Iets anders?
Zoals @Ariën aangeeft: stel je een character encoding in op je webpagina via een meta-tag of PHP header()?
Of in je head-tag, bij voorkeur voor enige "content" zoals een title-tag:
<meta charset="UTF-8">
(niet dat dit laatste echt uit zou moeten maken, maar wel zo netjes voor juiste interpretatie van de inhoud van je documenten)
Alternatieven (al is het vreemd dat mb_strtoupper() niet werkt, het is wel verstanding om altijd een encoding mee te geven lees ik op meerdere plaatsen):
- mb_convert_case($input, MB_CASE_UPPER, 'UTF-8')
- of met css :D via text-transform: uppercase;
Ik merk dat op één van mijn server dat ik met mb_strupper ook niet het gewenst resultaat krijg, wat ik in de 3v4l-sandbox wel krijg.
Blijkbaar staat er iets van een mb_string extensie uit. Dit kan je even controleren.
Let er wel op dat de CSS-mogelijkheid met de property text-transform alleen interessant is voor het visuele effect. Opslaan zou ik liever ook doen in rauw formaat.
Waarschijnlijk gaat het om het visuele effect omdat $naaminbeeld hoogstwaarschijnlijk al een samenraapsel is van voornaam, tussenvoegsels en achternaam (althans dat mogen we hopen :)).