Start
 

Aldfaer

Hét gratis stamboomprogramma

U bent op pagina StartForumSjablonenISO-8859-1 versus UTF-8
.

ISO-8859-1 versus UTF-8


  Posten niet toegestaanPage: « < 1 of 1 > »
13 Dec 2010 - 00:1818166
ISO-8859-1 versus UTF-8

Ik maak op mijn website gebruik van XmlHttpRequest om html-fragmenten in een pagina te laden. Veel van die fragmenten zijn met een Aldfaer-sjabloon gegenereerd. Probleem daarbij is dat accenten op letters e.d. (bv. é) niet goed weergegeven worden.
Oorzaak daarvan is dat Aldfaer-rapporten de ISO-8859-1 charset gebruiken en dat XmlHttpRequest de UTF-8 charset gebruikt.
Twee vragen:
Weet iemand of het mogelijk is XmlHttpRequest de ISO-8859-1 charset te laten gebruiken?
Is het mogelijk in een sjabloon de uitvoer aan te passen aan de UTF-8 charset?

Een voorbeeld van het probleem kun je vinden op mijn website http://www.xs4all.nl/~joslan/index.html:
Als je daar in de menubalk 'Landsheer' kiest en vervolgens 'Zutphense tak', verschijnt er een fragment dat gegenereerd is met een sjabloon dat gebaseerd is op het standaard Aldfaer Parenteel Grafisch.
In het blokje van Franciscus Landsheer (linksboven) zie je dat de ë in de sterfplaats Azië niet goed is weergegeven.

Alvast bedankt voor je medewerking!
Jos Landsheer



13 Dec 2010 - 10:3018172

Jos,

Ik heb geen kant-en-klare oplossing voor je, wel wat ideeën om te proberen.

Voor zover ik weet is het niet simpel mogelijk de sjabloonuitvoer in UTF-8 formaat te schrijven. Ik weet wel twee sjablonen die dat doen, één via een vertaaltabel en één via een javascriptfunctie, maar dat vereist dat je iedere keer als het sjabloom iets wegschrijft dit afvangt en naar utf-8 vertaalt. Dat is nogal ingrijpend om bij het Grafisch Parenteel rapport te doen, al kan het wel.

Je kan ook googelen op XmlHttpRequest en utf-8 / ISO-8859-1 om te zien of daar iets bijzit.

Ik weet ook dat je een bestand via Notepad / kladblok in utf-8 kan opslaan, dus je kan proberen dat met de sjabloonuitvoer te doen.

Je kan ook proberen de sjabloonuitvoer door een utf8-encode programma te halen, google op utf8_encode.

Paul



16 Dec 2010 - 00:3918218

Bedankt Paul.
De stand van zaken totnutoe is dat ik heb geprobeerd de tekst die XmlHttpRequest produceert af te vangen en met een javascriptfunctie om te zetten naar UTF-8. Dat zou een heel praktische oplossing zijn, maar helaas: XmlHttpRequest heeft alle 'vreemde tekens' al omgezet naar Unicode FFFD (de verzamelcode voor onbekend teken).
Ik heb ook geprobeerd XmlHttpRequest een header mee te geven waarin ik aangeef dat ik ISO-8859-1 -tekst wil hebben, maar dat werkt ook niet (misschien ligt dit aan mij en snap ik het niet zo goed).

Nu ga ik maar eens kijken of ik mijn sjabloon UTF-8 kan laten produceren.

Ondertussen houd ik me aanbevolen voor verdere tips en suggesties! (ik hoop eigenlijk dat er iemand op dit forum is die dit wiel al heeft uitgevonden ;-)

Jos Landsheer



16 Dec 2010 - 15:4518222

Langs een andere weg bereikte mij dezelfde vraag. De enige oplossing die ik weet is om de sjabloonuitvoer zodanig te bewerken dat er geen diacrieten en andere speciale tekens direct meer in staan. Dat doe je door bv '&' als dat in een tekst voorkomt te veranderen in '&amp;' of een e met een ` te vervangen door &egrave;. en zo zijn er nog een paar honderd. Het resultaat is dat dan de codepage afhankelijkheid verdwijnt.
Ik kan wel eens kijken of ik dat programma binnenkort even in elkaar kan draaien.

Wim Rozendaal



__________________
Het Aldfaer-team
19 Dec 2010 - 18:0718265

Het probleem is inmiddels opgelost: Paul Kallenberg heeft voor mij een hook gemaakt die (naast de HTML-files die tot het rapport behoren) een file conversie.html genereert. Deze bevat een javascript dat de andere HTML-files doorloopt en de tekens met een ASCII-waarde >=128 omzet.
Dit is een goed werkende oplossing (al is het natuurlijk wel een extra handeling die verricht moet worden).

Ik zou het trouwens wel een goede zaak vinden als in de sjabloontaal UTF-8-support wordt opgenomen. Ik denk aan een code _METACHARSET o.i.d. die als parameter UTF-8 of ISO-8859-1 enz. meekrijgt. De gebruiker zou deze code onder _METAINFO kunnen opnemen. Het effect zou dan moeten zijn dat de rapportgenerator een regel <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> aan het <head>-gedeelte van de uitvoer toevoegt en in de overige uitvoer tekens >= 128 converteert naar UTF-8 (of een andere codepage).

Jos Landsheer



19 Dec 2010 - 18:1318266

Opgevoerd onder wens #208



__________________
Han
  Posten niet toegestaanPage: « < 1 of 1 > »

© Stichting Aldfaer - ingeschreven bij de KvK Noord-Nederland onder nr. 01096526