Dzwebs.Net

撰写电脑技术杂文十余年

c++中文字utf-8符转string的函数代码

Admin | 2022-3-21 11:00:27 | 被阅次数 | 779

温馨提示!

如果未能解决您的问题,请点击搜索;登陆可复制文章,点击登陆

  函数功能及说明:如果字符中有中文,比如从前端从来的JSON不管是key还是value,只要带有中文,在c++中都会变乱码。需要下面的函数转换,才能正常输出。

  一、函数代码如下

  std::string UTF8_To_string(const std::string& str)
  {
     int nwLen = MultiByteToWideChar(CP_UTF8, 0, str.c_str(), -1, NULL, 0);
  wchar_t* pwBuf = new wchar_t[nwLen + 1];//一定要加1,不然会出现尾巴
  memset(pwBuf, 0, nwLen * 2 + 2);
  MultiByteToWideChar(CP_UTF8, 0, str.c_str(), str.length(), pwBuf, nwLen);
  int nLen = WideCharToMultiByte(CP_ACP, 0, pwBuf, -1, NULL, NULL, NULL, NULL);
  char* pBuf = new char[nLen + 1];
  memset(pBuf, 0, nLen + 1);
  WideCharToMultiByte(CP_ACP, 0, pwBuf, nwLen, pBuf, nLen, NULL, NULL);
  std::string retStr = pBuf;
  delete[]pBuf;
  delete[]pwBuf;
  pBuf = NULL;
  pwBuf = NULL;
  return retStr;
  }

  代码说明,上述代码不需要第三方的任何库,直接使用即可。

  二、使用方法

string result = UTF8_To_string(req.body);//req.body这个里面包含中文字符的json串。需要这样转换。


网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2021-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231