wchar_t und Umlaute bei GCC und VC++2010
-
Moin,
Mein GCC 4.4.1 kompiliert meine Projektdateien, in denen ich wstring usw. verwende, auch mit -pedantic fehlerfrei, seit ich in Code::Blocks UTF-8 als Font-Encoding eingestellt habe. Davor hat er bei Umlauten in Zeichenketten gemeckert:
error: converting to execution character set: Illegal byte sequence.
Nun habe ich mir vor wenigen Tagen VS2010 runtergeladen, um mein Projekt damit zu testen. Immer, wenn ich Dinge wie
wchar_t c = L'ä'; //aber nur bei whar_t und nicht wchar_t* - L"ä" funktioniert
schreibe, gibt er eine Warnung aus:
warning C4066: Mit Ausnahme des ersten Zeichens werden die Zeichen in einer 'breiten' Zeichenkonstante ignoriert
1. Wie kann man das verhindern?
2. Betrifft das auch den GCC? Schließlich habe ich exakt dieselben Dateien verwendet - beide mit UTF-8 Font-Encoding.MfG
wxSkip
-
Seltsam,
dein Code kompiliert tadelos in mein VS2010.
-
Zeus schrieb:
Seltsam,
dein Code kompiliert tadelos in mein VS2010.
OK, du hast es wahrscheinlich halt nicht als UTF-8 gespeichert.
Seltsam finde ich gerade außerdem, dass wenn ich bei Code::Blocks in einer Datei mit UTF-8 Encoding ein 'ä' schreibe, kommt es bei VS2010 als 'ä' raus, bei den alten Fehlerstellen kommt es aber normal raus, obwohl ich das gleiche gemacht habe mit gleichem File Encoding usw.
-
Dann frag ich mich, wie VS so eine Datei speichern würde:
-
Zeus schrieb:
Dann frag ich mich, wie VS so eine Datei speichern würde:
Ich weiß nicht genau, worauf du anspielst, aber es gibt in VS2010 3 verschiedene File Encodings: Unicode, Multibyte und ASCII. Ich weiß aber nicht genau, welches UTF Unicode und Multibyte jetzt genau sind.
-
Ist der Encoder gerecht?
http://img62.imageshack.us/img62/7814/54052976.png
-
Wo gibt es das? (Sorry, ich bin halt noch wirklich neu)
-
"Open With" auf die Datei.
-
Das hat die Umlaute jetzt erstmal völlig verspult. Keine Ahnung, ich kann sonst aber keine Lösung finden.