ucfirst() met speciale karakters
Maar waarom wordt een naam als Vajèn Bomen omgezet naar: VAJèN BOMEN en niet naar: VAJÈN BOMEN?
En hoe zorg ik dat dat wel gebeurt?
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?
Gewijzigd op 23/03/2018 15:07:46 door - Ariën -
en:
Maar bij beide krijg ik speciale karakters nog in kleine letters te zien... Iemand?
Hoe luidt de waarde van strtoupper(bin2hex($naaminbeeld)) van de naam "Vajèn Bomen"?
Als deze verschilt van 56616AC3A86E20426F6D656E (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 56616AE86E20426F6D656E (als je nog met ISO-charsets werkt) moeten luiden.
Gewijzigd op 23/03/2018 17:28:57 door Thomas van den Heuvel
Het luidt idd: 56616AC3A86E20426F6D656E
Hoe kan ik de data goed encoderen?
Gebruik je netjes UTF-8 headers?
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()?
In PHP, voor enige output:
Of in je head-tag, bij voorkeur voor enige "content" zoals een title-tag:
(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;
Gewijzigd op 23/03/2018 21:09:33 door Thomas van den Heuvel
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 :)).
Ik heb het voorbeeld van Arien gebruikt, en het werkt. Dank!