Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Win32: implement further UTF8 support
[xestiacalendar/.git] / source / objects / calendarobject / CalendarObject-Save.cpp
index 0cbe83e..0d72b46 100644 (file)
@@ -28,7 +28,25 @@ CalendarObjectSaveResult CalendarObject::SaveFile(string saveFilename){
        
        // Open the file.
        
+#ifndef WIN32
+
        fileStream.open(saveFilename, ofstream::out);
+
+#else
+
+       wstring saveFilename_utf16;
+
+       int len = MultiByteToWideChar(CP_UTF8, 0, &saveFilename[0], (int)saveFilename.size(), NULL, 0);
+
+       if (len > 0)
+       {
+               saveFilename_utf16.resize(len);
+               MultiByteToWideChar(CP_UTF8, 0, &saveFilename[0], (int)saveFilename.size(), &saveFilename_utf16[0], len);
+       }
+
+       fileStream.open(saveFilename_utf16, ofstream::out);
+
+#endif
        
        if (fileStream.rdstate() & ofstream::failbit){
                return CALENDAROBJECTSAVE_CANNOTOPEN;
@@ -45,8 +63,10 @@ CalendarObjectSaveResult CalendarObject::SaveFile(string saveFilename){
        
        saveResult = SaveString(&saveStringData);
        
-       fileStream.write(saveStringData.c_str(), saveStringData.size());
+       //fileStream.write(saveStringData.c_str(), saveStringData.size());
        
+       fileStream << saveStringData.c_str();
+
        fileStream.close();
        
        return saveResult;
Xestia Software Development
Yn Maystri
© 2006 - 2019 Xestia Software Development
Software

Xestia Address Book
Xestia Calendar
Development

Xestia Gelforn
Everything else

About
News
Privacy Policy