1 // Common/StringConvert.cpp
5 #include "StringConvert.h"
12 UString MultiByteToUnicodeString(const AString &srcString, UINT codePage)
15 if(!srcString.IsEmpty())
17 int numChars = MultiByteToWideChar(codePage, 0, srcString,
18 srcString.Length(), resultString.GetBuffer(srcString.Length()),
19 srcString.Length() + 1);
24 resultString.ReleaseBuffer(numChars);
29 AString UnicodeStringToMultiByte(const UString &srcString, UINT codePage)
32 if(!srcString.IsEmpty())
34 int numRequiredBytes = srcString.Length() * 2;
35 char defaultChar = '_';
36 int numChars = WideCharToMultiByte(codePage, 0, srcString,
37 srcString.Length(), resultString.GetBuffer(numRequiredBytes),
38 numRequiredBytes + 1, &defaultChar, NULL);
43 resultString.ReleaseBuffer(numChars);
49 AString SystemStringToOemString(const CSysString &srcString)
52 CharToOem(srcString, result.GetBuffer(srcString.Length() * 2));
53 result.ReleaseBuffer();
60 UString MultiByteToUnicodeString(const AString &srcString, UINT codePage)
63 for (int i = 0; i < srcString.Length(); i++)
64 resultString += wchar_t(srcString[i]);
66 if(!srcString.IsEmpty())
68 int numChars = mbstowcs(resultString.GetBuffer(srcString.Length()), srcString, srcString.Length() + 1);
69 if (numChars < 0) throw "Your environment does not support UNICODE";
70 resultString.ReleaseBuffer(numChars);
76 AString UnicodeStringToMultiByte(const UString &srcString, UINT codePage)
79 for (int i = 0; i < srcString.Length(); i++)
80 resultString += char(srcString[i]);
82 if(!srcString.IsEmpty())
84 int numRequiredBytes = srcString.Length() * 6 + 1;
85 int numChars = wcstombs(resultString.GetBuffer(numRequiredBytes), srcString, numRequiredBytes);
86 if (numChars < 0) throw "Your environment does not support UNICODE";
87 resultString.ReleaseBuffer(numChars);