linux wstring,关于linux环境下std::string转std::wstring的问题
各位大家好,现在本人需要将string转为wstring,其中字符串有字母和中文(如:”/usr/工具”)
本人在网上找了一下好多人多说一些代码能够转换:
[code=c#include
#include
#include
using namespace std;
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;
}
int main()
{
string filepath = “ise方法”;
//wstring b(filepath.begin(),filepath.end());
wstring wstr = s2ws(filepath);
wcout <
}][/code]
输出的结果:ise
本人想问一下一下这是为什么呢?
还有其他的转换方法吗?
解决方案
40
gb2312字符转 wstring:
std::wstring Fun(std::string const &strGb2312)
{
std::vector buff(strGb2312.size());
std::locale loc(“zh-CN”);
wchar_t* pwszNext = nullptr;
const char* pszNext = nullptr;
mbstate_t state = {};
int res = std::use_facet<:codecvt> >
(loc).in(state,
strGb2312.data(), strGb2312.data() + strGb2312.size(), pszNext,
buff.data(), buff.data() + buff.size(), pwszNext);
if (std::codecvt_base::ok == res)
{
return std::wstring(buff.data(), pwszNext);
}
return “”;
}
以上c++11才支持。
CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于linux环境下std::string转std::wstring的问题!
linux wstring,关于linux环境下std::string转std::wstring的问题相关推荐
- arm linux 2.6下载,ARM+LINUX(montavista2.6.x)环境下SIMCOM5218使用
ARM+LINUX(montavista2.6.x)环境下 SIMCOM5218使用 http://blog.sina.com.cn/s/blog_4c796ed20100hpxg.html 一. 系 ...
- Nginx在Linux(centos7)环境下的下载与安装
Nginx在Linux(centos7)环境下的下载与安装 一.下载Nginx 1.免费的开源版本官方网址 2.选择需要下载的版本 二.安装Nginx 1.安装前准备(需要安装相关依赖库) 2.安装N ...
- 几种C++ std::string和std::wstring相互转换的转换方法
第一种方法:调用WideCharToMultiByte()和MultiByteToWideChar(),代码如下(关于详细的解释,可以参考<windows核心编程>): #include ...
- linux(ubuntu)环境下安装及配置JDK
安装完IDEA之后遇到了问题,发现jdk安装完之后配置环境变量好困难,下面总结一下我的安装及配置方式: JDK下载链接:http://download.oracle.com/otn-pub/java/ ...
- linux centos7 mysql_Linux centos7环境下安装MySQL的步骤详解
Linux centos7环境下安装MySQL的步骤详解 安装MySQL mysql 有两个跟windows不同的地方 1).my.ini 保存到/etc/my.ini 2).用户权限,单独用户执行 ...
- 桂电在linux、Mac OS环境下使用出校器(支持2.14)
这是guetsec学长在三院科协学长所抓包逆向分析1.81版出校器的基础上,用python写的一款为Mac和linux环境开发的出校器. 最后我做了略微修改,支持暂时最新版本2.14.下面有直接从源码 ...
- Linux挖坑脚本,Windows环境下写Linux sh脚本的一次挖坑和填坑
最近在研究Docker集群和安装的时候,需要准备若干台机器.所以我为节约时间,打算批量复制VM机器,然后用sh脚本命令执行机器名称和IP等基础配置信息的修改. 具体操作:我在windows环境下,用N ...
- 在linux+nginx+mysql+php环境下安装 phpmyadmin
环境 1, CentOS 7 2, nginx1.12.2 (Linux 利用yum源安装nginx) 3, php7.0 (Linux 利用yum源安装php7.0+nginx) 4, mysql5 ...
- linux sublime nodejs,Windows环境下sublime的Nodejs插件详细安装图解
前面的话 搜索了好多文档后,才成功在Windows环境下安装了sublime text3的nodejs插件.为了存档,也为了方便有同样需求的朋友,将其安装过程详细记录如下 安装nodejs 虽然nod ...
最新文章
- 浅谈python语言_浅谈Python语言基础知识点!
- linux 服务器 安装网卡驱动,linux下安装编译网卡驱动的方法
- vb.net 正则 替换 第n个_Python中正则表达式模块详解
- 分布式架构基础:Java RMI详解
- Spring IOC之依赖
- CDN服务技术架构图
- angularjs http和ajax,AngularJS $ http和$ resource
- 视觉编码(Visual Encoding)
- oracle 用户账户被锁处理
- 怎样发布一个工程到自己的GitHub
- java机考_【Java】(机考常用)类集
- mimo雷达虚拟阵列matlab,基于Matlab的雷达阵列天线信号的波达方向估计
- win11电脑上如何设置微信双开(打开两个微信)
- android中RecyclerView添加下划线
- 物联网方面的竞赛有那些?
- 数字图像处理实验四对比度增强
- PLSQL - 递归子查询RSF打破CONNECT BY LOOP限制
- 日本第二场酒类专场拍卖“L拍卖”将在东京举行
- Oracle数据库字段翻译
- 工控安全PLC固件逆向一
热门文章
- 三个3D可视化案例:不只酷炫,实用最重要
- 美团外卖和饿了么的头盔大战
- ​刘强东卸任京东集团 CEO,徐雷接任;苹果新专利可为多个设备无线充电;Rust公布2024年路线图|极客头条
- Java基础加强重温_05:Iterator迭代器、增强for循环、集合综合案例-斗地主、数据结构(栈、队列、数组、链表、红黑树)、List接口、Set接口
- 12.1 剪贴板的简单用法
- 想为萌宠起个最可爱的名字?AI或许能帮你
- IPC Hi3518EV300开发板——移植Linux 0.串口快速烧录教程
- TCE高分通过密码应用安全性评估(3级)
- 2015 找暑期实习总结
- matlab分块矩阵取某一块_MATLAB实现矩阵分块相乘