diff options
Diffstat (limited to 'utilities.cpp')
-rw-r--r-- | utilities.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/utilities.cpp b/utilities.cpp index 4f594cb..b462a23 100644 --- a/utilities.cpp +++ b/utilities.cpp @@ -438,7 +438,7 @@ void HistoryLog(HANDLE hContact, char *data, int event_type, int flags) Event.cbSize = sizeof(Event); Event.szModule = szGPGModuleName; Event.eventType = event_type; - Event.flags = flags, DBEF_UTF; + Event.flags = flags; Event.timestamp = (DWORD)time(NULL); Event.cbBlob = strlen(data)+1; Event.pBlob = (PBYTE)_strdup(data); @@ -934,10 +934,22 @@ int returnNoError(HANDLE hContact) { string toUTF8(wstring str)
{
string ustr;
- utf8::utf16to8(str.begin(), str.end(), back_inserter(ustr));
+ wstring tmpstr;
+ utf8::replace_invalid(str.begin(), str.end(), back_inserter(tmpstr));
+ utf8::utf16to8(tmpstr.begin(), tmpstr.end(), back_inserter(ustr));
+ return ustr;
+}
+
+string toUTF8(string str)
+{
+ string ustr;
+ wstring tmpstr;
+ utf8::replace_invalid(str.begin(), str.end(), back_inserter(tmpstr));
+ utf8::utf16to8(tmpstr.begin(), tmpstr.end(), back_inserter(ustr));
return ustr;
}
+
wstring toUTF16(string str) //convert as much as possible
{
wstring ustr;
|