Unicode in Datei schreiben
-
Ähm jo. Die Überschrift sagt eigentlich alles. Mein Problem ist, dass ich nichtmal weiß, wie ich eine Datei öffne, um im Unicode-Format da reinzuschreiben.
Ich wollte es mit _wfopen probieren, aber das ist scheinbar nicht Win98 kompatibel, und des sollte mein Programm schon sein
Im Moment schreib ich behelfsmäßig im ASCII-Code in meine Dateien, aber ich will den ASCII-Code ja eigentlich ausrotten
-
Win98 unterstützt kein Unicode.
-
Das ist aber verdammt schlecht! Kann es unter Win98 auch Probleme geben, mein Programm zu starten, weil ich wchar_t verwende??
-
Kommt drauf an wie Du es verwendest. Wenn Du die auf Unicode zugeschnittene API benutzt dann vielleicht, wenn Du aber mit COM (was IMO ausschließlich Unicode benutzt) arbeitest, dann sollte es keine Probleme machen. Du kannst ja Unicode verwenden, aber für die API-Aufrufe musst Du die dann in ANSI umwandeln. Ich glaube es gibt in der Win-API Umwandlungsfunktionionen, die auch von Win9x unterstützt werden, mir fällt im Moment nicht ein wie die heißen, WideCharToAnsi/AnsiToWideChar oder so.
-
MultiByteTo... heißen die
Und _wfopen hat mit Unicode nur zu tun, dass man den Dateinamen der zu öffnenden Datei als const wchar_t* angeben kann. Das ist zwar schonmal sinnvoll (und mit der Standardbibliothek unmöglich), aber was man letztendlich in die Datei schreibt, ist davon unabhängig. Um Unicode in eine Datei zu schreiben, kannst du die w-Versionen von fstream oder fprintf() verwenden, oder wchar_t-Arrays binär schreiben. Außerdem solltest du noch beachten, dass Unicode-Dateien noch einen binären Header haben, der die verwendete Codierung angibt.
Wenn du komplett auf Unicode umstellen willst was wie WinAPI angeht, kannst du mal nach dem Microsoft Layer for Unicode googlen. Der geht aber nur mit MSVC ohne Weiteres.
-
Ok ich such mal nach dem Microsoft Layer für Unicode
Aber geht das mit dem auch, dass ich da ganz ohne TCHAR auskomm, sondern ausschließlich wchar_t verwende?
Ich will in meinem Programm nur Unicode, kein Byte, Multiybyte oder sowas variables wie TCHAR.Und: Wie schaut es mit Win9X aus?? Win98 muss auf jeden Fall gehen.
Das eigentliche Problem ist jetzt nicht mehr, in die Datei zu schreiben, weil jetzt ein viel ernsteres Problem mit Win98 aufgetaucht ist...
-
Mit dem "Microsoft Layer for Unicode" kannst du AFAIK durchgängig mit wchar_t arbeiten. Nahezu jede WinAPI-Funktion funktioniert damit auch in der W-Variante.
Übrigens steht im platform sdk bei jeder Funktion dabei, ob sie unterstützt wird:microsoft schrieb:
CreateWindow
[ganz viel Text]
Windows 95/98/Me: CreateWindowW is supported by the Microsoft Layer for Unicode (MSLU). To use this, you must add certain files to your application, as outlined in Microsoft Layer for Unicode on Windows 95/98/Me Systems.About the Microsoft Layer for Unicode
Da steht was der Layer nicht kann.