RTFM!
Je probleem zul je op moeten lossen door je tekst gewoon als tekst bij te hoduen, en niet als html encoded tekst. Helaas ben je binnen php dan wel een beetje beperkt omdat het standaard niet met UTF8 om kan gaan. Je zult daarnaast dus de, al door Oid aangehaalde, multibyte varianten van de functies moeten gebruiken.
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
RTFM!
Anyway, je kan volgens mij gewoon eerst http://www.php.net/manual/en/function.html-entity-decode.php gebruiken, dan converteren naar uppercase (met multibyte/utf-8 functies), en dan weer http://www.php.net/manual/en/function.htmlentities.php
[ Voor 60% gewijzigd door Zoijar op 12-03-2013 16:34 ]
Euhm... Ja of nee. Ik denk dat je het nog niet helemaal begrepen hebt. Je huidige probleem is dat een een stuk data hebt welke binnen een html context "olé". Maar dat is niet de werkelijke vulling van de string. De werkelijke vulling is iets als "olé". De toUpperCase functie werkt op de werkelijke string, namelijk "olé", en maakt daar "OLÉ" van. Dat is compleet logisch, maar niet wanneer je het vervoglens in een HTML context weer gaat weergeven._Moe_ schreef op dinsdag 12 maart 2013 @ 16:16:
Dus als ik het goed begrijp moet ik de tekst buiten de html file brengen?
De fout die je maakt is dat je tekst bewerkingen los laat op html data. Om dit op te lossen heb je dus twee opties:
1 - html bewerkingen gebruiken. Hierbinnen heb je weer twee opties: Of puur html door bijvoorbeeld de style aan te passen, of zelf html bewerkings functies gaan schrijven die begrijpen dat het niet É moet worden, maar É (heel erg lastig... zelfs voor Tweakers,net, maar dat zullen mijn html rechten wel zijn
2 - je data als tekst opslaan. Let hierbij wel op dat php niet standaard zomaar met UTF8 om kan gaan. Encoding was bij de makers van php een afterthought.
[ Voor 3% gewijzigd door Janoz op 12-03-2013 19:45 . Reden: Zelfs voor tweakers.net ]
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Hoewel je voor optie 2 moet gaan (beter: zou hebben moeten zijn gegaan) is optie 1 nou ook weer niet héél erg lastig volgens mij (althans, in 't geval é -> É). Volgens mij wordt 't dan zoiets:Janoz schreef op dinsdag 12 maart 2013 @ 16:43:
1 - [...] of zelf html bewerkings functies gaan schrijven die begrijpen dat het niet É moet worden, maar É (heel erg lastig)
1
| echo mb_strtoupper(html_entity_decode('Olé', ENT_COMPAT, 'UTF-8')); |
of, om 't weer in "html entities vorm" te krijgen:
1
| echo htmlentities(mb_strtoupper(html_entity_decode('Olé', ENT_COMPAT, 'UTF-8')), ENT_COMPAT, 'UTF-8'); |
Having said that: dit pad wil je niet in slaan.
[edit]
Wat Zoijar in "capitale é" dus zegt
* RobIII is wat scheel.
[ Voor 13% gewijzigd door RobIII op 12-03-2013 16:52 ]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
RobIII schreef op dinsdag 12 maart 2013 @ 16:51:
[edit]
Wat Zoijar in "capitale é" dus zegt
* RobIII is wat scheel.
haha, ik zat ook vol verbazing te lezen met de gedachte 'ben ik nou gek?' Maar het is wel duidelijker zo uitgeschreven, iets dat ik niet altijd ben wegens haast
Het is gelukt, en zie nu in wat uppercase al dan niet juist doet
Ik heb het nodige uppercase gebracht via css zoals @Janoz aanhaalde.
RTFM!
Wat niet opschiet is dat jij niet bedacht hebt dat als jij in t.net "é" schrijft, dat in een html-context terecht komt en dus gewoon é wordtJanoz schreef op dinsdag 12 maart 2013 @ 16:43:
[...]
Maar dat is niet de werkelijke vulling van de string. De werkelijke vulling is iets als "olé". De toUpperCase functie werkt op de werkelijke string, namelijk "olé", en maakt daar "OLÉ" van.
[ Voor 3% gewijzigd door CyBeR op 13-03-2013 11:45 ]
All my posts are provided as-is. They come with NO WARRANTY at all.