///////////////////////////////////////////////////////////////////////////////
//  CharacterCode.h

#ifndef CHARACTERCODE_H_
#define CHARACTERCODE_H_

#include <string>

namespace charactercode {

// ShiftJIS(CP932)の文字列をUTF8の文字列に変換する
// 変換できない文字が存在した場合はその文字は'*'に置き換えられ、falseが返される
bool	SJISToUTF8(std::string& Result, const std::string& Source);

// UTF8の文字列をShiftJIS(CP932)に変換する
// 変換できない文字が存在した場合はその文字は'*'に置き換えられ、falseが返される
bool	UTF8ToSJIS(std::string& Result, const std::string& Source);

// ShiftJIS(CP932)の文字列をUTF16の文字列に変換する
// 変換できない文字が存在した場合はその文字は'*'に置き換えられ、falseが返される
bool	SJISToUTF16(std::wstring& Result, const std::string& Source);

// UTF16の文字列をShiftJIS(CP932)に変換する
// 変換できない文字が存在した場合はその文字は'*'に置き換えられ、falseが返される
bool	UTF16ToSJIS(std::string& Result, const std::wstring& Source);

} // end of namespace charactercode

#endif // CHARACTERCODE_H_

