|
|
#pragma once
|
|
|
#include <windows.h>
|
|
|
#include <string>
|
|
|
|
|
|
int SEU_Rand(int ran); //自定义的随机数发生器
|
|
|
|
|
|
/************************************************************************/
|
|
|
/*
|
|
|
三种编码格式互转
|
|
|
|
|
|
UTF-8 <===> GB2312
|
|
|
∧ ∧
|
|
|
| |
|
|
|
| |
|
|
|
∨ ∨
|
|
|
Unicode
|
|
|
|
|
|
UTF-8和GB2312可以用strlen来计算长度
|
|
|
|
|
|
|
|
|
Unicode要wsclen(p)*2=字符串长度. 因为unicode一个ansi字符也占2字节. 一个汉字也占2字节.
|
|
|
|
|
|
|
|
|
*/
|
|
|
/************************************************************************/
|
|
|
//UTF-8到GB2312的转换,返回的指针要delete
|
|
|
extern AFX_EXT_API char* UTF8_To_GB2312(const char* utf8);
|
|
|
extern AFX_EXT_API void UTF8_To_GB2312(const char* utf8, char* &gbOut);
|
|
|
//string版
|
|
|
extern AFX_EXT_API std::string UTF8_To_GB2312(const std::string &utf8);
|
|
|
|
|
|
//GB2312到UTF-8的转换,返回的指针要delete
|
|
|
extern AFX_EXT_API char* GB2312_To_UTF8(const char* gb2312);
|
|
|
//string版
|
|
|
extern AFX_EXT_API std::string GB2312_To_UTF8(const std::string &gb2312);
|
|
|
|
|
|
|
|
|
//参数2是为了方便知道unicode的字符串长度.也可以用wsclen来计算该函数返回的unicode char*指针.来统计unicode的字符数.x2就是字符串长度
|
|
|
extern AFX_EXT_API char* UTF8_To_Unicode(const char* utf8, int & len);
|
|
|
//string版
|
|
|
extern AFX_EXT_API std::wstring UTF8_To_Unicode(const std::string &utf8);
|
|
|
|
|
|
|
|
|
extern AFX_EXT_API char* Unicode_To_UTF8(const char* unicode);
|
|
|
//string版
|
|
|
extern AFX_EXT_API std::string Unicode_To_UTF8(const std::wstring &unicode);
|
|
|
|
|
|
|
|
|
//等同于MByteToWChar. 内部调用了MByteToWChar
|
|
|
extern AFX_EXT_API char* GB2312_To_Unicode(const char* gb2312, int & len);
|
|
|
//string版
|
|
|
extern AFX_EXT_API std::wstring GB2312_To_Unicode(const std::string &gb2312);
|
|
|
|
|
|
|
|
|
//等同与WCharToMByte 内部调用了WCharToMByte
|
|
|
extern AFX_EXT_API char* Unicode_To_GB2312(const char* unicode);
|
|
|
//string版
|
|
|
extern AFX_EXT_API std::string Unicode_To_GB2312(const std::wstring &unicode);
|
|
|
|
|
|
|
|
|
/*
|
|
|
宽字符转多字节
|
|
|
注意返回的字符串不用后要delete
|
|
|
其实就是unicode 转ansi/gb2312
|
|
|
*/
|
|
|
extern AFX_EXT_API CHAR* WCharToMByte(WCHAR* lpcwszStr);
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
多字节转宽字符
|
|
|
注意返回的字符串不用后要delete
|
|
|
*/
|
|
|
extern AFX_EXT_API WCHAR* MByteToWChar(CHAR* lpcstr);
|
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
//static inline std::string convWith(const std::wstring &src);
|
|
|
//
|
|
|
//static inline std::wstring convWith(const std::string &src);
|
|
|
|