没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
01.// 多字节编码转为UTF8编码
02.bool MBToUTF8(vector<char>& pu8, const char* pmb, int32 mLen)
03.{
04. // convert an MBCS string to widechar
05. int32 nLen = MultiByteToWideChar(CP_ACP, 0, pmb, mLen, NULL, 0);
06.
07. WCHAR* lpszW = NULL;
08. try
09. {
10. lpszW = new WCHAR[nLen];
11. }
12. catch(bad_alloc &memExp)
13. {
14. return false;
15. }
16.
17. int32 nRtn = MultiByteToWideChar(CP_ACP, 0, pmb, mLen, lpszW, nLen);
18.
19. if(nRtn != nLen)
20. {
21. delete[] lpszW;
22. return false;
23. }
24. // convert an widechar string to utf8
25. int32 utf8Len = WideCharToMultiByte(CP_UTF8, 0, lpszW, nLen, NULL, 0, NULL, NULL);
26. if (utf8Len <= 0)
27. {
28. return false;
29. }
30. pu8.resize(utf8Len);
02.bool MBToUTF8(vector<char>& pu8, const char* pmb, int32 mLen)
03.{
04. // convert an MBCS string to widechar
05. int32 nLen = MultiByteToWideChar(CP_ACP, 0, pmb, mLen, NULL, 0);
06.
07. WCHAR* lpszW = NULL;
08. try
09. {
10. lpszW = new WCHAR[nLen];
11. }
12. catch(bad_alloc &memExp)
13. {
14. return false;
15. }
16.
17. int32 nRtn = MultiByteToWideChar(CP_ACP, 0, pmb, mLen, lpszW, nLen);
18.
19. if(nRtn != nLen)
20. {
21. delete[] lpszW;
22. return false;
23. }
24. // convert an widechar string to utf8
25. int32 utf8Len = WideCharToMultiByte(CP_UTF8, 0, lpszW, nLen, NULL, 0, NULL, NULL);
26. if (utf8Len <= 0)
27. {
28. return false;
29. }
30. pu8.resize(utf8Len);
31. nRtn = WideCharToMultiByte(CP_UTF8, 0, lpszW, nLen, &*pu8.begin(), utf8Len, NULL, NULL);
32. delete[] lpszW;
33.
34. if (nRtn != utf8Len)
35. {
36. pu8.clear();
37. return false;
38. }
39. return true;
40.}
41.
42.// UTF8编码转为多字节编码
43.bool UTF8ToMB(vector<char>& pmb, const char* pu8, int32 utf8Len)
44.{
45. // convert an UTF8 string to widechar
46. int32 nLen = MultiByteToWideChar(CP_UTF8, 0, pu8, utf8Len, NULL, 0);
47.
48. WCHAR* lpszW = NULL;
49. try
50. {
51. lpszW = new WCHAR[nLen];
52. }
53. catch(bad_alloc &memExp)
54. {
55. return false;
56. }
57.
58. int32 nRtn = MultiByteToWideChar(CP_UTF8, 0, pu8, utf8Len, lpszW, nLen);
59.
60. if(nRtn != nLen)
32. delete[] lpszW;
33.
34. if (nRtn != utf8Len)
35. {
36. pu8.clear();
37. return false;
38. }
39. return true;
40.}
41.
42.// UTF8编码转为多字节编码
43.bool UTF8ToMB(vector<char>& pmb, const char* pu8, int32 utf8Len)
44.{
45. // convert an UTF8 string to widechar
46. int32 nLen = MultiByteToWideChar(CP_UTF8, 0, pu8, utf8Len, NULL, 0);
47.
48. WCHAR* lpszW = NULL;
49. try
50. {
51. lpszW = new WCHAR[nLen];
52. }
53. catch(bad_alloc &memExp)
54. {
55. return false;
56. }
57.
58. int32 nRtn = MultiByteToWideChar(CP_UTF8, 0, pu8, utf8Len, lpszW, nLen);
59.
60. if(nRtn != nLen)
剩余5页未读,继续阅读
zuo668
- 粉丝: 7
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页