#ifndef STRCONV_H
#define STRCONV_H

#include <string>
#include <Windows.h>

namespace StrConv
{
std::wstring AnsiToUnicode(const char* src);

std::string AnsiToUTF8(const char* src);

std::string UTF8ToAnsi(const char* src);

std::wstring UTF8ToUnicode(const char* src);

std::string UnicodeToUTF8(const wchar_t* src);

//  std::string UTF8ToNative(const char* src);

std::string  NativeToUTF8(LPCTSTR src);

std::wstring  TCHARToUnicode(LPCTSTR src);

std::string UnicodeTochar(const wchar_t*src);

bool UTF8ToUnicode(std::wstring& str_out,  const std::string& str_in);

bool UnicodeToUTF8(std::string& str_out, const std::wstring& str_in);

bool UnicodeToMulti(std::string& str_out, const std::wstring& str_in);

bool MultiToUnicode(std::wstring& str_out, const std::string& str_in);
};

#endif // STRCONV_H
