关于gSoap应用中用的字符转换
来源:互联网 发布:仙桃数据谷 重庆 编辑:程序博客网 时间:2024/06/03 21:16
//宽字节转为单字节 wstring->string
std::string ws2s(const std::wstring& ws)
{
std::string curLocale = setlocale(LC_ALL, NULL); // curLocale = "C";
setlocale(LC_ALL, "chs");
const wchar_t* _Source = ws.c_str();
size_t _Dsize = 2 * ws.size() + 1;
char *_Dest = new char[_Dsize];
memset(_Dest,0,_Dsize);
wcstombs(_Dest,_Source,_Dsize);
std::string result = _Dest;
delete []_Dest;
setlocale(LC_ALL, curLocale.c_str());
return result;
}
//单字节转为宽字节 string->wstring
std::wstring s2ws(const std::string& s)
{
setlocale(LC_ALL, "chs");
const char* _Source = s.c_str();
size_t _Dsize = s.size() + 1;
wchar_t *_Dest = new wchar_t[_Dsize];
wmemset(_Dest, 0, _Dsize);
mbstowcs(_Dest,_Source,_Dsize);
std::wstring result = _Dest;
delete []_Dest;
setlocale(LC_ALL, "C");
return result;
}
//宽 字符转UTF8
string EncodeUtf8(wstring in)
{
string s(in.length()*3+1,' ');
size_t len = ::WideCharToMultiByte(CP_UTF8, 0,
in.c_str(), in.length(),
&s[0], s.length(),
NULL, NULL);
s.resize(len);
return s;
}
//UTF8 转宽字符
wstring DecodeUtf8(string in)
{
wstring s(in.length(), _T(' '));
size_t len = ::MultiByteToWideChar(CP_UTF8, 0,
in.c_str(), in.length(),
&s[0], s.length());
s.resize(len);
return s;
}
std::string ws2s(const std::wstring& ws)
{
std::string curLocale = setlocale(LC_ALL, NULL); // curLocale = "C";
setlocale(LC_ALL, "chs");
const wchar_t* _Source = ws.c_str();
size_t _Dsize = 2 * ws.size() + 1;
char *_Dest = new char[_Dsize];
memset(_Dest,0,_Dsize);
wcstombs(_Dest,_Source,_Dsize);
std::string result = _Dest;
delete []_Dest;
setlocale(LC_ALL, curLocale.c_str());
return result;
}
//单字节转为宽字节 string->wstring
std::wstring s2ws(const std::string& s)
{
setlocale(LC_ALL, "chs");
const char* _Source = s.c_str();
size_t _Dsize = s.size() + 1;
wchar_t *_Dest = new wchar_t[_Dsize];
wmemset(_Dest, 0, _Dsize);
mbstowcs(_Dest,_Source,_Dsize);
std::wstring result = _Dest;
delete []_Dest;
setlocale(LC_ALL, "C");
return result;
}
//宽 字符转UTF8
string EncodeUtf8(wstring in)
{
string s(in.length()*3+1,' ');
size_t len = ::WideCharToMultiByte(CP_UTF8, 0,
in.c_str(), in.length(),
&s[0], s.length(),
NULL, NULL);
s.resize(len);
return s;
}
//UTF8 转宽字符
wstring DecodeUtf8(string in)
{
wstring s(in.length(), _T(' '));
size_t len = ::MultiByteToWideChar(CP_UTF8, 0,
in.c_str(), in.length(),
&s[0], s.length());
s.resize(len);
return s;
}
0 0
- 关于gSoap应用中用的字符转换
- DedeCMS中用到的字符编码转换
- gSoap的应用
- gSoap 的简单应用
- CString 的Format函数中用于转换的格式字符
- Format函数中用于转换的格式字符
- 关于字符的一些转换
- 关于字符转换的讨论
- 关于Gsoap的简单客户端使用【GSoap的HelloWorld】
- 关于Gsoap的简单客户端使用【GSoap的HelloWorld】
- 关于Unicode字符到GB2312的转换
- 关于字符转换方法的整理
- 关于mina iobuffer的字符转换
- 关于mina iobuffer的字符转换
- 关于字符的转换和存储
- 关于String字符转换的问题
- 关于iconv字符编码的转换
- 基于gSoap框架的webservice应用一
- 从字符串中取出数字
- Linux终端神器tmux简介
- Javascript引擎单线程机制及setTimeout执行原理说明
- jQuery Easing 动画
- 【欧拉回路】 Codeforces Round #296 (Div. 1) C - Data Center Drama
- 关于gSoap应用中用的字符转换
- Tutorial: 使用rsyslog向kafka, elasticsearch推送日志
- 【Android】Webview使用自定义的javascript进行回调
- C++:STL标准入门汇总
- C++程序员学习用C#写网站(二)
- HTML head 头标签
- MySQL插入语句insert性能优化
- OC语言——内存管理
- 小皮助手