Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » CodePage ändern. WIE??

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
11.03.2007, 14:08 Uhr
RedEagle



Hi
Nochmal wegen den Codepages...

Ich habe mal ein einfaches Programm geschrieben zum Testen:


C++:
#include <stdio.h>
#include <windows.h>

void cptest(UINT cp);

int main()
{
cptest(437);
cptest(1252);
cptest(37);

getchar();
return 0;
}

void cptest(UINT cp)
{
if(SetConsoleOutputCP(cp))printf(">\t");
else                      printf("!\t");

for(int i=0xC0; i<=0xE0; i++)printf("%c ",i);
printf("\n");
}


Eigentlich sollten sich in den Codepages die Zeichen zwischen 0xC0 und 0xE0 teilweise unterscheiden.
Bei mir sehen aber alle 3 Zeilen gleich aus...

WARUM?? Liegt es an mir oder an Windows??
--
MFG RedEagle

Dieser Post wurde am 11.03.2007 um 14:10 Uhr von RedEagle editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
19.08.2007, 02:10 Uhr
Hans
Library Walker
(Operator)



Zitat von RedEagle:
Hi
Nochmal wegen den Codepages...

Eigentlich sollten sich in den Codepages die Zeichen zwischen 0xC0 und 0xE0 teilweise unterscheiden.
Bei mir sehen aber alle 3 Zeilen gleich aus...

WARUM?? Liegt es an mir oder an Windows??

Hi,

habe das Programm mal bei mir unter Win 95 laufen lassen; da sehen auch alle 3 Zeilen gleich aus. Habe auch keine Erklärung dafür. - Hast Du inzwischen ein gefunden?

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.

Dieser Post wurde am 19.08.2007 um 02:11 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
19.08.2007, 17:35 Uhr
Tron



Moin,

die Codepage wird schon geändert,
siehe GetConsoleOutputCP().
Aber das ganze hat auch etwas mit dem verwendeten Font zutun.

[quote]A code page maps 256 character codes to individual characters. Different code pages include different special characters, typically customized for a language or a group of languages. If the current font is a fixed-pitch Unicode font, SetConsoleOutputCP changes the mapping of the character values into the glyph set of the font, rather than loading a separate font each time it is called. This affects how extended characters (ASCII value greater than 127) are displayed in a console window. However, if the current font is a raster font, SetConsoleOutputCP does not affect how extended characters are displayed.[/qoute]

GetCurrentConsoleFont liefert z.B. bei mir Font 6, Fontsizex 80, Fontsizey 50.
Desweiteren gibt es in der kernel32.dll zwei undokumentierte Funktionen.
SetConsoleFont und GetNumberOfConsoleFonts.

Ein weiterer Anlaufpunkt ist GetStockObject
Muss da noch mal genauer lesen, oder vielleicht kann ja sonst noch jemand etwas
dazu beitragen!
Währe jedenfalls interessant.

Dieser Post wurde am 19.08.2007 um 21:16 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
19.08.2007, 22:16 Uhr
Hans
Library Walker
(Operator)



Zitat von Tron:
Moin,
....
Desweiteren gibt es in der kernel32.dll zwei undokumentierte Funktionen.
SetConsoleFont und GetNumberOfConsoleFonts.


Undocumented Windows! - Ich dachte, das Kapitel hatten wir bereits. Ist aber irgendwie typisch für MS.
Ansonsten, sehr interessant, was Du da schreibst. Muss ich mich noch mal genauer mit befassen, wird aber noch etwas dauern...

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.

Dieser Post wurde am 19.08.2007 um 22:18 Uhr von Hans editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
19.08.2007, 22:46 Uhr
RedEagle



Erstmal danke für die zwar späte, aber wirklich interessante Antwort.

Allerdings bin ich komplett auf Linux umgestiegen, sodass sich dieses Thema erledigt hat
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
21.08.2007, 02:07 Uhr
Hans
Library Walker
(Operator)


Hi,

hat man wegen der Codepages nicht noch ein Problem, wenn man Textdateien, die unter DOS oder Windoof erstellt wurden, unter Linux richtig anzeigen will? Und was macht Linux genau? Nutzt das konsequent Unicode? Aber dann muss man die Dateien vorher evtl. doch noch durch einen Konverter schicken, damit Umlaute und dgl. auch wieder stimmen, oder nicht?

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
21.08.2007, 12:08 Uhr
Bruder Leif
dances with systems
(Operator)


Moin!

Linux, BSD, ... nutzen das, was Du willst. In letzter Zeit auch immer oefter UTF-8.

Code:
man iconv


ist Dein Freund. Alternativ, um einfach das nervige \r\n loszuwerden:

Code:
tr -d "\r" < filename > neuesfile


--
Mit 40 Fieber sitzt man nicht mehr vor dem PC.
Man liegt im Bett.
Mit dem Notebook.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: