diff --git a/aegisub/src/text_file_writer.cpp b/aegisub/src/text_file_writer.cpp index 4ccdb6d94..19982548a 100644 --- a/aegisub/src/text_file_writer.cpp +++ b/aegisub/src/text_file_writer.cpp @@ -54,7 +54,15 @@ TextFileWriter::TextFileWriter(wxString _filename,wxString enc) { // Set encoding encoding = enc; - if (encoding == _T("Local") || (encoding.IsEmpty() && Options.AsText(_T("Save Charset")).Lower() == _T("local"))) conv = &wxConvLocal; + if (encoding == _T("Local") || (encoding.IsEmpty() && Options.AsText(_T("Save Charset")).Lower() == _T("local"))) { + conv = &wxConvLocal; + wxFontEncoding sysenc = wxLocale::GetSystemEncoding(); + if (sysenc == wxFONTENCODING_UTF8 || sysenc == wxFONTENCODING_UTF7 || + sysenc == wxFONTENCODING_UNICODE) // that last one may be a bit questionable + IsUnicode = true; + else + IsUnicode = false; + } else { if (encoding.IsEmpty()) encoding = Options.AsText(_T("Save Charset")); if (encoding == _T("US-ASCII")) encoding = _T("ISO-8859-1"); diff --git a/aegisub/src/text_file_writer.h b/aegisub/src/text_file_writer.h index 4e6a3c488..0de541eb2 100644 --- a/aegisub/src/text_file_writer.h +++ b/aegisub/src/text_file_writer.h @@ -42,6 +42,7 @@ // Headers #include #include +#include #include