字符串的处理是编程中会经常遇到的问题,在字符串处理中宽窄字符的转换是个很烦人的问题,往往在处理中为了在不同的函数中使用参数,要频繁的将字符在宽窄之间转换
下面是在工作中写的两个函数,实现宽窄字符的转换
/***********************************************************************
* 将窄字节转换为宽字节
***********************************************************************/
std::wstring toWideString( const char* pStr , int len )
{
std::wstring buf ;
len = strlen(pStr);
wchar_t* buff;
buff = new wchar_t[len+1];
setlocale(LC_ALL,".936");
int nChars = mbstowcs(buff,pStr,len+1);
setlocale(LC_ALL,"C");
buf = buff;
delete buff;
return buf;
}
/**********************************************************************
* 将宽字节转换为窄字节
***********************************************************************/
std::string toNarrowString( const wchar_t* pStr , int len )
{
char* buff = new char[len*2+1];
memset(buff,0,len*2+1);
setlocale(LC_ALL,".936");
int nChars = wcstombs(buff,pStr,len*2+1);
setlocale(LC_ALL,"C");
std::string buf (buff);
delete buff;
return buf ;
}
不过多的解释了,函数比较简单,很实用