|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef AFX_EXT_CLASS
|
|
|
|
|
|
#define AFX_EXT_CLASS Q_DECL_IMPORT
|
|
|
|
|
|
#endif
|
|
|
|
|
|
#if !defined(__CCHINESECODELIB_H_)
|
|
|
|
|
|
#define __CCHINESECODELIB_H_
|
|
|
|
|
|
namespace GBase
|
|
|
|
|
|
{
|
|
|
|
|
|
class AFX_EXT_CLASS CChineseCode
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CChineseCode();
|
|
|
|
|
|
virtual ~CChineseCode();
|
|
|
|
|
|
|
|
|
|
|
|
//BOM<4F><4D><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD>3<EFBFBD>ֽ<EFBFBD>UTF-8<>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD><C9A3><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD>BOM<4F><4D>UTF-8<>ַ<EFBFBD><D6B7><EFBFBD>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD>Ч<EFBFBD>ġ<EFBFBD>
|
|
|
|
|
|
//<2F>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>3<EFBFBD>ֽڳ<D6BD><DAB3><EFBFBD>UTF-8<>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£<EFBFBD><C2A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD>UTF-8<>ַ<EFBFBD><D6B7><EFBFBD><EEB3A4><EFBFBD><EFBFBD>3<EFBFBD><33><EFBFBD>ֽ<EFBFBD>
|
|
|
|
|
|
static bool IsUTF8(const void* pBuffer, size_t size, size_t& offset);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>صĽ<D8B5><C4BD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>delete
|
|
|
|
|
|
char* fromUTF8(char* str, size_t& nSize); //ת<><D7AA>ΪGB2312
|
|
|
|
|
|
char* ToUTF8(char* str, size_t& nSize); //ת<><D7AA>ΪUTF8
|
|
|
|
|
|
|
|
|
|
|
|
CString UTF_8ToGB2312(char *pText, int pLen);
|
|
|
|
|
|
CString GB2312ToUTF_8(char *pText, int pLen);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void UnicodeToUTF_8(char* pOut, WCHAR* pText); // Unicode ת<><D7AA><EFBFBD><EFBFBD>UTF-8
|
|
|
|
|
|
void UTF_8ToUnicode(WCHAR* pOut, char* pText); // <20><>UTF-8ת<38><D7AA><EFBFBD><EFBFBD>Unicode
|
|
|
|
|
|
|
|
|
|
|
|
//WCHAR<41><52>char<61>ת<E0BBA5><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>Ҫdelete
|
|
|
|
|
|
char* UnicodeToAnsi(const WCHAR* szStr, int wlen);
|
|
|
|
|
|
WCHAR* AnsiToUnicode(const char* szStr, int len);
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ת<EFBFBD><D7AA>һ<EFBFBD><D2BB><EFBFBD>ֽ<EFBFBD>
|
|
|
|
|
|
void Gb2312ToUnicode(WCHAR* pOut, char *gbBuffer); // GB2312 ת<><D7AA><EFBFBD>ɡ<EFBFBD>Unicode
|
|
|
|
|
|
void UnicodeToGB2312(char* pOut, unsigned short uData); // <20><>Unicode ת<><D7AA><EFBFBD><EFBFBD> GB2312
|
|
|
|
|
|
CStringW UTF8toUTF16(const CStringA& utf8);
|
|
|
|
|
|
CStringA UTF16toUTF8(const CStringW& utf16);
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
}
|
|
|
|
|
|
#endif // !defined(__CCHINESECODELIB_H_)
|