pelzfrucht
Goto Top

Visual Studio - Codierung dauerhaft speichern

Hi,

Ich hab eine Frage zu Visual Studio 2015.
Unter Datei > Erweiterte Speicheroptionen
lässt sich die Codierung für den Quelltext einstellen.

Standardmäßig ist dort
Westeuropäisch (Windows) - Codepage 1252
eingestellt. Ich benötige jedoch
Westeuropäisch (DOS) - Codepage 850

Soweit kein Problem.
Lässt sich einstellen und mit OK zeigt es dann auch Wirkung.
(Umlaute in C Programmen werden z.B. ab dann korrekt dargestellt)

Leider speichert Visual Studio das ganze nicht dauerhaft, sondern nur bis zum nächsten Neustart
der IDE.
Nach dem nächsten Visual Studio Neustart ist dort nämlich wieder "Westeuropäisch (Windows) - Codepage 1525" eingestellt.
Zwar kann ich es immer wieder umstellen, aber es wäre mir ganz lieb wenn meine Kodierungseinstellung dauerhaft gespeichert würde.

Hat einer 'ne Idee wie ich Visual Studio dazu bringe, die Kodierung dauerhaft zu speichern damit er sie nicht nach einen Neustart verliert?

Viele Grüße
pelzfrucht

Content-Key: 303978

Url: https://administrator.de/contentid/303978

Printed on: April 18, 2024 at 08:04 o'clock

Mitglied: 129148
129148 May 09, 2016 updated at 07:01:01 (UTC)
Goto Top
Umlaute in C Programmen werden z.B. ab dann korrekt dargestellt
Wenn man es richtig macht, braucht man an der Kodierung des Quelltextes überhaupt nichts drehen!!
Denn ein gut geschriebenes Konsolenprogramm passt seine Textausgaben an die Codepage in der es gerade läuft intelligent an: Also im C-Programm das "Environment" in der es gerade läuft abfragen und den Text mit der passenden Kodierung ausgeben, so macht man das richtig und nicht mit so einem hanebüchenen Workaround.

Btw. die Codepage 1252 ist unter Windows die "Standardkodierung" welche sich in den Windows-Regionsoptionen anpassen lässt. Wenn es in den Optionen von VS keine Einstellung dafür gibt, wäre das die erste Anlaufstelle, das gilt dann aber Systemweit und nicht nur für VS.
Member: Friemler
Friemler May 09, 2016 updated at 17:57:11 (UTC)
Goto Top
Hallo pelzfrucht,

verwende die Console-Varianten von printf bzw. puts => _cprintf und _cputs. Es gibt auch noch _cscanf. Dann kannst Du Deinen Quelltext in der Codierung Windows-1252 erstellen und die deutschen Umlaute werden trotzdem richtig ausgegeben.

Die Funktionen sind in der msvcrt.dll enthalten, das benötigte include-File ist conio.h. Da ich meine C-Spielereien mit CodeBlocks und MinGW mache, kann ich Dir nicht sagen, ob Du in VS noch extra einen Parameter für den Linker angeben musst, um die richtige Lib einzubinden.

Der entstehende Code ist zwar nicht mehr unbedingt portabel, aber um portablen Code zu schreiben muss man sowieso richtig tief in die Materie einsteigen. Um einige Übungsprogramme zu schreiben ist das o.g. völlig ausreichend.

Gruß
Friemler
Member: pelzfrucht
pelzfrucht May 09, 2016 at 19:19:24 (UTC)
Goto Top
Hi,

@1122tra
Btw. die Codepage 1252 ist
nicht die Standard Codepage für Kommandozeilen Programme.
Die Eingabeauffoderung / Text Basierte Programme laufen unter Windows immer (standardmäßig) mit der Codepage 850.

Wenn es in den Optionen von VS keine Einstellung dafür gibt
Gibt es aber. Wird aber nicht permanent (für das Projekt) gespeichert.
Und das war meine Frage.

Wenn man es richtig macht [...] hanebüchenen Workaround.
Ich bin noch relativ am Anfang, also stört es mich eherlich gesagt nicht.
Ich lege zwar wert auf klaren und sauberen Code, aber die Kodierung der Standard Kodierung auf dem Zielsystem anzupassen ist in meinen Augen keine "unsaubere" Lösung.

@Friemler

Das hilft mir weiter, ich werd's gleich ausprobieren face-smile
Vielen Dank.

Viele Grüße
pelzfrucht
Member: rubberman
Solution rubberman May 09, 2016 updated at 20:21:13 (UTC)
Goto Top
Hallo pelzfrucht,

VS bietet keine Möglichkeit das Encoding des Quellcodes als Standard festzulegen. Der C-Standard bietet aber die Möglichkeit Locale-Einstellungen zu synchronisieren.
#include <locale.h>
// ...
setlocale(LC_ALL, "");  
siehe setlocale()
Auf diese Weise vermeidest du nicht nur Umlautprobleme, sondern passt u.A. auch die Darstellung des Datums (z.B. 09.05.2016 statt 05/09/2016) oder von Fließkommazahlen (z.B. 3,14 statt 3.14) an die der jeweiligen Umgebung an.

Grüße
rubberman
Mitglied: 129148
129148 May 09, 2016 updated at 21:11:18 (UTC)
Goto Top
Zitat von @pelzfrucht:

Hi,

@1122tra
Btw. die Codepage 1252 ist
nicht die Standard Codepage für Kommandozeilen Programme.
Die Eingabeauffoderung / Text Basierte Programme laufen unter Windows immer (standardmäßig) mit der Codepage 850.

Schon klar für die Konsole, aber ich meinte eben für stink normale Anwendungen wie VS, Notepad etc. lässt sich diese Einstellung Windowsweit setzen und von dieser erben die meisten dieser Anwendungen diese Einstellungen...VS zieht sich diese eben von den Locale Options der Systemsteuerung.

Aber wie gesagt ist das intelligente Anpassen an die Umgebung in der ein Programm läuft immer noch die bevorzugte Variante, denn es gibt ja auch Leute die ihre CMD auf eine andere Kodierung eingestellt haben.