umlauts

Status
Niet open voor verdere reacties.

stykurgh

Gebruiker
Lid geworden
6 jul 2009
Berichten
715
Hallo,

Ik heb in c++ een programma gemaakt, dit programma leest alle regels van een tekst bestand in, in een array. Alleen zitten er woorden bij met een umlaut zoals ä. Als ik deze letters in het tekst bestand verander naar \x84 dan leest hij dit ook in als /x84 en niet als ä. Is er een makkelijke manier om mijn programma dit goed op het scherm te tonen?

Mvg

Michel
 
als de de encoding van het bestand weet is het simpel gewoon die instellen.
 
dit moet ik in mijn compiler instellen? en waar moet ik hem op zetten zodat hij ze wel goed weergeeft?
 
dit moet ik in mijn compiler instellen? en waar moet ik hem op zetten zodat hij ze wel goed weergeeft?

Dat heeft niks met de compiler te maken maar met de manier waarop de tekst is opgeslagen. Jij gaat uit van ASCII, daar het gebruikte programma voor het maken van het tekstbestand het in unicode heeft opgeslagen. (via google is daarover genoeg te vinden)
 
De tekst staat in een txt bestand met ANSI encoding, ik heb toen een table gezocht met de hex waarden maar dat helpt niks. hij blijft het als /x.. weergeven.
Ik heb ook verschillende encodings geprobeerd met bijbehorende table maar ook dit zonder succes. iemand een idee wat ik fout doe?
 
Laatst bewerkt:
Als je de tekst weergeeft op de console met bijvoorbeeld
cout << tekst;
of
printf("%s",tekst);
en je werkt met windows kan je proberen de tekst om te zetten van ansi naar oem met
CharToOem()
Code:
#include <windows.h>
//...
     char buffer[256], bufferOEM[256];
//...
     fgets(buffer, 256, fileIn);
     CharToOem(buffer, bufferOEM);
     printf("%s\n",bufferOEM);

of de codepagina van de console aanpassen met SetConsoleCP();
SetConsoleCP() werkt overigens niet op de oude windows versies.
Code:
SetConsoleCP( GetACP() );

Als je echt \x84 wil omzetten naar ä zal je de string zelf moeten parsen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan