Próbuję napisać plik zakodowany w UTF-16 używając std :: ofstream(). Nawet w trybie binarnym zapisywanie "\n\0"
jest zapisywane jako "\r\n\0"
. Przykładowy kod:std :: ofstream pisze r nawet w trybie binarnym
std::string filename = ...
std::ofstream fout(filename, std::ios_base::binary);
fout.write("\xff\xfe", 2);
fout.write("\n\0", 2);
fout.close();
dane hex plik wynikowy jest:
ff fe 0d 0a 00
muszę robić coś złego. Jakieś pomysły, aby zapobiec pisaniu 0x0d?
Używam MS VisualStudio 2013
Update: To niewytłumaczalny rozpoczął pracę zgodnie z oczekiwaniami. Pisz po duchach w maszynie.
W trybie binarnym nie powinno być tłumaczenia . Jeśli istnieje tłumaczenie, jest gdzieś błąd. –
Co z 'fout.write (" \ x0a \ 0 ", 2);'? –
To by działało, ale PO działa w niewłaściwy sposób. Ta ścieżka doprowadzi jedynie do większego bólu i nędzy oraz gróźb Unicode. –