Ich versuche, eine UTF-16-codierte Datei mit std :: ofstream() zu schreiben. Selbst im Binärmodus wird das Schreiben "\n\0"
als "\r\n\0"
geschrieben. Beispielcode:std :: ofstream schreibt r sogar im Binärmodus
std::string filename = ...
std::ofstream fout(filename, std::ios_base::binary);
fout.write("\xff\xfe", 2);
fout.write("\n\0", 2);
fout.close();
Die Hex-Daten der resultierenden Datei ist:
ff fe 0d 0a 00
ich etwas falsch zu machen sein. Irgendwelche Ideen um zu verhindern, dass das 0x0d geschrieben wird?
I 2013.
Update-MS Visual Studio bin mit: Es begann unerklärlich wie erwartet funktioniert. Schreibe es auf Geister in der Maschine.
Im Binärmodus sollte es keine Übersetzung geben . Wenn es eine Übersetzung gibt, liegt irgendwo ein Fehler vor. –
Was ist mit 'fout.write (" \ x0a \ 0 ", 2);'? –
Das würde funktionieren, aber das OP geht in die falsche Richtung. Dieser Pfad wird nur zu mehr Schmerz und Elend und Unicode-Fehlern führen. –