1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
#include "../modules.h"
#if JIN_OS == JIN_WINDOWS
#include "utf8.h"
namespace jin
{
std::string to_utf8(LPCWSTR wstr)
{
size_t wide_len = wcslen(wstr) + 1;
// Get size in UTF-8.
int utf8_size = WideCharToMultiByte(CP_UTF8, 0, wstr, wide_len, 0, 0, 0, 0);
char * utf8_str = new char[utf8_size];
// Convert to UTF-8.
int ok = WideCharToMultiByte(CP_UTF8, 0, wstr, wide_len, utf8_str, utf8_size, 0, 0);
if (!ok)
{
delete[] utf8_str;
}
return ok ? std::string(utf8_str) : std::string();
}
void replace_char(std::string & str, char find, char replace)
{
int length = str.length();
for (int i = 0; i<length; i++)
{
if (str[i] == find)
str[i] = replace;
}
}
} // jins
#endif // JIN_OS == JIN_WINDOWS
|