WRT 下 C++ wstring, string, String^ 互转
由于项目原因,需要引入C++。
wstring 与 string 的互转研究了一段时间,坑主要在于使用下面这种方式进行转换,中文会乱码
wstring ws = L"这是一段测试文字";
string s;
s.assign(ws.begin(), ws.end());
因此采用了下面的方法将wstring 转为 string
wstring wstr = L"这是一段测试文字";
string str;
int wstr_len = wstr.length();
int str_len = wstr_len * sizeof(wchar_t);
str.resize(str_len);
int new_len = WideCharToMultiByte(CP_ACP,,(LPCWSTR)wstr.c_str(),wstr_len,(LPSTR)str.c_str(),str_len,NULL,NULL);
str.resize(new_len);
类似的 string转为wstring 为
int str_len = s.length();//这里的s是上述办法转下来的string
wstring wstr;
wstr.resize(str_len); int new_len = MultiByteToWideChar(CP_ACP,,(LPSTR)s.c_str(),str_len,(LPWSTR)wstr.c_str(),str_len);
wstr.resize(new_len);
wstring 转为 String^ 的方法为
auto ps = ref new String(wstr.c_str());
String^ 转为 wstring 的方法为
wstring wstr(ps->Data());
WRT 下 C++ wstring, string, String^ 互转的更多相关文章
- C++中Cstring、wstring 和string互相转换总结
通过前一篇文章<C++中string,wstring,CString的基本概念和用法>,对Cstring.wstring 和string有了一个了解.string是C++提供的标准字符串操 ...
- CString 转 char*; wstring 转 string
1. CString 转 char* ); CString name; name.Format(_T("bookUC%d.txt"),m_ID); std::wstring _n ...
- VC++中 wstring和string的互相转换实现
在VC++开发中,经常会用到string和wstring,这就需要二者之间的转换,项目中封装了wstring和string相互转换的2个函数,实现如下: //将wstring转换成string std ...
- wchar_t与char、wstring与string的相互转换
个人倾向于使用优秀的开源库做这个. 最近使用boost进行转换,代码极其简单: boost::filesystem::path src(wchar_t); char = src.string().c_ ...
- 金九银十,收下这份 Java String 面试题
请点赞关注,你的支持对我意义重大. Hi,我是小彭.本文已收录到 GitHub · Android-NoteBook 中.这里有 Android 进阶成长知识体系,有志同道合的朋友,关注公众号 [彭旭 ...
- 入门:Java Map<String,String>遍历及修改
重点:在使用Map时注意key-value,key用于检索value的内容. 在正常情况下,可以不允许重复:在java中分为2中情况,一是内存地址重复,另一个是不同的地址但内容相等. 在使用Map是一 ...
- 从为什么String=String谈到StringBuilder和StringBuffer
前言 有这么一段代码: public class TestMain { public static void main(String[] args) { String str0 = "123 ...
- Iterator<Entry<String,String>> iter=map.entrySet().iterator(); 是什么意思
//获得map的迭代器,用作遍历map中的每一个键值对Iterator是迭代器,map之前应该定义过,姑且认为是HashMap.<Entry<String,String>>表示 ...
- c# String ,String[] 和 List<String>之间的转换
C#对字符串进行处理时,经常需要进行String,String[]和List<String>之间的转换 本文分析一下它们的差异和转换 一. 1. String > String[] ...
随机推荐
- 学习Python语言 基础语法:变量的基本使用
Python变量 程序是用来处理数据的,变量就是用来保存数据的,通过给数据定义一个名称来保证方便记忆和识别.使用这个数据.变量可以保存所有类型的数据. Python变量的定义 在Python中,变量的 ...
- Java入门知识点
Java入门知识点 Java源代码的流程 Java程序由.java文件生成,通过JVM进行编译得到字节文件.class class HelloWorld { public static void ...
- Java异步执行多个HTTP请求的例子(需要apache http类库)
直接上代码 package org.jivesoftware.spark.util; import java.io.IOException; import java.util.concurrent.C ...
- 列表list切片
list1 = [1, 2, 3, 4, 5, 6] list1[::-1] >>>[6, 5, 4, 3, 2, 1] list1[:3:-1] >>>[6, 5 ...
- 取消vim打开文件全是黄色方法
如下图: 取消方法: 按下esc键 :nohl 回车
- k8s总结(脑图图片)
- JAVA获取运行环境的信息
System.getProperties().list(System.out); 得到运行环境的信息
- Velocity常用语法详解
果然公司用的东西跟平时学的东西不太一样,我们公司前台页面并不是我们熟悉的.html或者.jsp文件,而是很多人不知道的 .vm文件,其实只要我们理解了jsp文件,vm文件也就是一些基本语法不同而已. ...
- JavaScript之radio遍历
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- 理解 React Hooks
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由志航发表于云+社区专栏 TL;DR 一句话总结 React Hooks 就是在 react 函数组件中,也可以使用类组件(classe ...