Ik heb een nieuwssysteem dat alle invoer als UTF8 behandelt. Dat gaat met allerlei raars in de berichten al ruim een jaar helemaal goed, op één uitzonderingssituatie na.
Na invoer van een stuk tekst gaat deze string door een eigen correctiefunctie die allerlei vreemde komma tekens normaliseert, bedoeld voor bijvoorbeeld geplakte teksten uit Word. Als er in deze tekst een Ó karakter (=capital o met accent) voorkomt, wordt deze letter omgezet naar �" (=ongewenst teken), in plaats van dat het met rust wordt gelaten. Dit komt door mijn conversie van chr(147) naar " (=aanhalingsteken), wat ik baseer op het bijbehorende ASCII cijfer (bron, kijk bij 147). Echter, deze lijkt ook effect te hebben op mijn Ó-teken. Nu kom ik sites tegen waarbij de extended ASCII set verschilt van degene die ik gewend ben, zoals hier. Daar staat 147 voor ô. Heeft dat er iets mee te maken? Vreemd genoeg komt dit hele probleem niet voor met É, Í, Ú of Á.
Voorbeeldcode waarbij het mis gaat: [pastebin] (GoT/React verandert de vreemde tekens; dus plaats ik het daar).
De uitkomst van dit stukje code is in de browser:
Overigens is dit de volledige functie waardoor het mis gaat (regel #6 is schuldig): [pastebin]. Hebben mensen hiervoor vergelijkbare code geschreven en kan dit wellicht slimmer/beter?
Na invoer van een stuk tekst gaat deze string door een eigen correctiefunctie die allerlei vreemde komma tekens normaliseert, bedoeld voor bijvoorbeeld geplakte teksten uit Word. Als er in deze tekst een Ó karakter (=capital o met accent) voorkomt, wordt deze letter omgezet naar �" (=ongewenst teken), in plaats van dat het met rust wordt gelaten. Dit komt door mijn conversie van chr(147) naar " (=aanhalingsteken), wat ik baseer op het bijbehorende ASCII cijfer (bron, kijk bij 147). Echter, deze lijkt ook effect te hebben op mijn Ó-teken. Nu kom ik sites tegen waarbij de extended ASCII set verschilt van degene die ik gewend ben, zoals hier. Daar staat 147 voor ô. Heeft dat er iets mee te maken? Vreemd genoeg komt dit hele probleem niet voor met É, Í, Ú of Á.
Voorbeeldcode waarbij het mis gaat: [pastebin] (GoT/React verandert de vreemde tekens; dus plaats ik het daar).
De uitkomst van dit stukje code is in de browser:
beide zeer verschillende tekens worden dus als hetzelfde omgevormd.�" �"
Overigens is dit de volledige functie waardoor het mis gaat (regel #6 is schuldig): [pastebin]. Hebben mensen hiervoor vergelijkbare code geschreven en kan dit wellicht slimmer/beter?
[ Voor 43% gewijzigd door mosymuis op 27-07-2010 16:03 . Reden: code verplaatst naar pastebin; bericht verbeterd ]