ASCII-Werte von Zeichen >127 als positive Ganzzahlwert speichern/anzeigen
-
Hallo,
wie kann ich den ASCII Codewert von dem Zeichen '£' oder '€' in einem unsigned integer/short anzeigen/speichern lassen. Das würde ich gerne auch bei allen Zeichen, die im erweiterten ASCII Bereich(<127 und <256) sind, durchführen..
Bei Zeichen unter dem ASCII Codewert von 128 ist das kein Problem. Aber bei allen Zeichen zwischen 128 und 255 werden die Codewerte nicht richtig angezeigt. In Fall von dem u.g. Code ist j eine hohe fünstellige Zahl, obwohl sie den Wert 128 haben soll. Ich arbeite unter Windows 10 64 Bit und Visual Studio. Kann mir jemand einen Tip geben?UINT codepage = GetConsoleOutputCP(); std::cout << "Aktuelle Codepage: " << codepage << std::endl; setlocale(LC_ALL, "de-DE.1252"); SetConsoleOutputCP(1252); codepage = GetConsoleOutputCP(); std::cout << "Aktuelle Codepage: " << codepage << std::endl; char c = '€'; unsigned int j = static_cast<unsigned int>(c);
-
@asd1 Wie ist denn deine Source Datei codiert?
-
@asd1 sagte in ASCII-Werte von Zeichen >127 als positive Ganzzahlwert speichern/anzeigen:
//unsigned int j = static_cast<unsigned int>(c); unsigned int j = static_cast<unsigned char>(c); // oder unsigned int j = c & 0xFFu; // oder int j = c & 0xFF;
-
@Schlangenmensch sagte in ASCII-Werte von Zeichen >127 als positive Ganzzahlwert speichern/anzeigen:
@asd1 Wie ist denn deine Source Datei codiert?
Wie finde ich das raus?
-
@hustbaer Danke. Funktioniert. Wäre aber auf die Lösungen nicht gekommen. Die erste Lösung sieht ein bisschen schräg aus.
-
@asd1 Die meisten Editoren lassen dich das irgendwo einstellen. Bei Visual Studio z.B. kannst du z.B. unter Save As anstelle von Save, Save with Encoding auswählen.
Aber es geht ja um einen einzelnen Char. "€" als UTF 8 würde nicht in einen char passen.
Ginge auch so, wenn kein signed char sein muss:
unsigned char c = '€'; unsigned int j = c; std::cout << "int val: " << j << std::endl;