Hallo !
Sorry voor de lange tekst, maar ik moet de achtergrond schetsen om m'n probleem te verduidelijken. Ik weet ook niet of deze vraag thuis hoort bij HTML of bij VBA, maar omdat de oorsprong HTML is, plaats ik het toch maar hier.
Een aantal jaren geleden deed ik een projectje met HTML voor een FAQ-pagina op het intranet waar ik werkte. Toen gebruikte ik frames voor een header, navigatie en voor de centrale inhoud. Onlangs ging ik de uitdaging aan om een kleine website te maken, met behulp van alleen Notepad en ftp. Bij het zoeken op het www merkte ik dat nogal wat veranderd is op gebied van web-ontwikkeling. Blijkbaar is het nu HTML5 en CSS3 dat de klok slaat. In de verschillende artikels en online cursussen vond ik ook terug dat het gebruik van frames voorbijgestreefd is (uitgezonderd iframes om een externe site te tonen) en dat nu divs volop van toepassing zijn. Het vervangen van frames door divs was niet zo'n probleem. Alleen verdwijnen de header en navigatiebalk van het scherm als men scrolt, maar blijkbaar zijn de meeste hedendaagse websites zo opgebouwd. Het grootste probleem voor mij was de inhoud van de HTML-pagina's. Bij het gebruik van frames open je gewoon een ander HTML-bestand in de centrale frame, maar bij divs gaat dat niet. Ik was dan verplicht om per navigatie-optie een apart HTML-bestand te openen. Ik heb dus in mijn geval zes HTML-bestanden gemaakt. Dat is op zichzelf niet zo erg, maar de code voor de header, navigatie, footer en rechterkolom staat in alle zes de HTML-bestanden. Dat is niet elegant, en het is ook inefficiënt. Als men bijvoorbeeld iets aan de header wil wijzigen moet men dat in alle zes de HTML-bestanden doen. Bijzonder onpraktisch, maar ik had er een oplossing voor gevonden: per navigatie-optie (dus zes) heb ik een txt-bestand gemaakt met bijkomend nog een txt-bestand voor de header, navigatiebalk, footer en rechterkolom. Met behulp van Excel laat ik dan een VBA macro de zes HTML-bestanden genereren en dat werkt prima. So far so good.
Maar bij verdere opzoekingen vind ik terug dat men absoluut een charset moet specifiëren en dat die utf-8 moet zijn om compatibel te zijn met HTML5. Ik dacht dat even te fixen, maar dat loopt serieus fout. Eerst heb ik de meta tag met charset="utf-8" in het gepaste txt-bestand ingevoerd. Vervolgens alle txt-bestanden geopend met Notepad en opgeslagen met encoding = utf-8 en dan de zes HTML-bestanden gegenereerd met de VBA macro. Het resultaat is dat characters boven code 128 foutief getoond worden in de browser. Die gaat er van uit dat de HTML-bestanden een utf-8-encoding hebben, maar blijkbaar is dat niet zo.
Om de HTML-bestanden te creëren gebruik ik de OpenTextFile() en CreateTextFile() methodes van een FileSystemObject en ik heb zowat alle combinaties van format- en tristate-parameters geprobeerd, echter zonder resultaat. Blijkbaar lukt het mij niet om met CreateTextFile() een output te bekomen met utf-8-encoding. (opmerking: als ik de gegenereerde HTML-bestanden één voor één open met Notepad en opsla met utf-8 dan lukt het wel, maar dat vind ik dan weer te omslachtig).
Iemand een idee?
Grtz,
MDN111.
Sorry voor de lange tekst, maar ik moet de achtergrond schetsen om m'n probleem te verduidelijken. Ik weet ook niet of deze vraag thuis hoort bij HTML of bij VBA, maar omdat de oorsprong HTML is, plaats ik het toch maar hier.
Een aantal jaren geleden deed ik een projectje met HTML voor een FAQ-pagina op het intranet waar ik werkte. Toen gebruikte ik frames voor een header, navigatie en voor de centrale inhoud. Onlangs ging ik de uitdaging aan om een kleine website te maken, met behulp van alleen Notepad en ftp. Bij het zoeken op het www merkte ik dat nogal wat veranderd is op gebied van web-ontwikkeling. Blijkbaar is het nu HTML5 en CSS3 dat de klok slaat. In de verschillende artikels en online cursussen vond ik ook terug dat het gebruik van frames voorbijgestreefd is (uitgezonderd iframes om een externe site te tonen) en dat nu divs volop van toepassing zijn. Het vervangen van frames door divs was niet zo'n probleem. Alleen verdwijnen de header en navigatiebalk van het scherm als men scrolt, maar blijkbaar zijn de meeste hedendaagse websites zo opgebouwd. Het grootste probleem voor mij was de inhoud van de HTML-pagina's. Bij het gebruik van frames open je gewoon een ander HTML-bestand in de centrale frame, maar bij divs gaat dat niet. Ik was dan verplicht om per navigatie-optie een apart HTML-bestand te openen. Ik heb dus in mijn geval zes HTML-bestanden gemaakt. Dat is op zichzelf niet zo erg, maar de code voor de header, navigatie, footer en rechterkolom staat in alle zes de HTML-bestanden. Dat is niet elegant, en het is ook inefficiënt. Als men bijvoorbeeld iets aan de header wil wijzigen moet men dat in alle zes de HTML-bestanden doen. Bijzonder onpraktisch, maar ik had er een oplossing voor gevonden: per navigatie-optie (dus zes) heb ik een txt-bestand gemaakt met bijkomend nog een txt-bestand voor de header, navigatiebalk, footer en rechterkolom. Met behulp van Excel laat ik dan een VBA macro de zes HTML-bestanden genereren en dat werkt prima. So far so good.
Maar bij verdere opzoekingen vind ik terug dat men absoluut een charset moet specifiëren en dat die utf-8 moet zijn om compatibel te zijn met HTML5. Ik dacht dat even te fixen, maar dat loopt serieus fout. Eerst heb ik de meta tag met charset="utf-8" in het gepaste txt-bestand ingevoerd. Vervolgens alle txt-bestanden geopend met Notepad en opgeslagen met encoding = utf-8 en dan de zes HTML-bestanden gegenereerd met de VBA macro. Het resultaat is dat characters boven code 128 foutief getoond worden in de browser. Die gaat er van uit dat de HTML-bestanden een utf-8-encoding hebben, maar blijkbaar is dat niet zo.
Om de HTML-bestanden te creëren gebruik ik de OpenTextFile() en CreateTextFile() methodes van een FileSystemObject en ik heb zowat alle combinaties van format- en tristate-parameters geprobeerd, echter zonder resultaat. Blijkbaar lukt het mij niet om met CreateTextFile() een output te bekomen met utf-8-encoding. (opmerking: als ik de gegenereerde HTML-bestanden één voor één open met Notepad en opsla met utf-8 dan lukt het wel, maar dat vind ik dan weer te omslachtig).
Iemand een idee?
Grtz,
MDN111.