首页 > 编程语言 >c++ string 与 wstring 互转

c++ string 与 wstring 互转

时间:2024-09-02 12:37:05浏览次数:8  
标签:std string c++ wstring str 互转 include converter

string 转 wstring:

#include <iostream>
#include <sstream>
#include <locale>
#include <string>
#include <codecvt>

int main() {
    std::string utf8_str = "你好,世界!";
    std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
    std::wstring wide_str = converter.from_bytes(utf8_str);
    std::wcout.imbue(std::locale("chs"));
    std::wcout << wide_str << std::endl;

    return 0;
}

 

wstring 转 string:

#include <iostream>
#include <sstream>
#include <locale>
#include <string>
#include <codecvt>

int main() {
    system("chcp 65001");

    std::wstring wide_str = L"你好,世界!";
    std::wstring_convert<std::codecvt_utf8<wchar_t>> converter;
    std::string utf8_str = converter.to_bytes(wide_str);
    std::cout.imbue(std::locale("chs"));
    std::cout << utf8_str << std::endl;

    return 0;
}

 

标签:std,string,c++,wstring,str,互转,include,converter
From: https://www.cnblogs.com/nanfei/p/18392482

相关文章

  • 【C++】C++STL 揭秘:Strng背后的底层逻辑
    C++语法相关知识点可以通过点击以下链接进行学习一起加油!命名空间缺省参数与函数重载C++相关特性类和对象-上篇在上篇介绍string类的使用与理解,本篇将为大家来带关于string的底层实现逻辑,当然这不是一定库里面的实现逻辑。我们设计一个string类是为了在使用string类相关......
  • 命名空间在 C++ 中如何组织和管理代码?,c++中的命名空间是什么意思
    在C++编程中,命名空间(namespace)是组织和管理代码的重要工具。它为程序员提供了一种将代码按逻辑分组的方法,避免名称冲突,特别是在大型项目或使用多个库时显得尤为重要。命名空间可以看作是一个作用域,它包含了标识符(如变量、函数、类等)的集合。当我们在不同的模块中使用相同的标识符......
  • 【编程规范具体案例(基于Qt、微软、谷歌和AUTOSAR C++14 参考)】 C++ 编码规范 之程序设
    目录标题基本元素3.1类和结构体3.1.1\[必须]使用恰当的访问修饰符来管理类成员的可见性3.1.2\[必须]在类中合理使用默认的特殊成员函数3.1.3\[必须]提供清晰且尽可能一致的类接口3.1.4\[建议]优先使用初始化列表来初始化类成员3.1.5\[建议]使用抽......
  • 第3章_auto占位符(C++11~C++17)
    第3章auto占位符(C++11~C++17)3.1重新定义的auto关键字在C++11中静态成员变量是可以用auto声明并且初始化的,不过前提是auto必须使用const限定符。staticconstautox=5;遗憾的是,const限定符会导致x常量化,显然这不是我们想要的结果。在C++17标准中,对于静态成员变量,auto可以......
  • 第5章 函数返回类型后置(C++11)
    第5章函数返回类型后置(C++11)5.1使用函数返回类型后置声明函数语法:auto是一个占位符,int才是真正的返回类型autofoo()->int{return42;}返回一个函数指针类型,返回类型后置可能会是一个不错的选择intbar_impl(intx){returnx;}typedefint(*bar)(int);bar......
  • 第4章 decltype说明符(C++11~C++17)
    第4章decltype说明符(C++11~C++17)4.1回顾typeof和typeid(1)在C++11标准发布以前,GCC的扩展提供了一个名为typeof的运算符。通过该运算符可以获取操作数的具体类型。typeof是GCC所提供,并非C++标准。inta=9;typeof(a)b=5;(2)C++标准还提供了一个typeid运算符来获取与目标操......
  • C# convert sql blob type to plain string
    Blobstandsforbinarylargeobject byte[]bytesArr=(byte[])rows[i]["congest"];bk.Congest=Encoding.UTF8.GetString(bytesArr)publicstaticDataSetGetSQLDataset(stringselectSQL){DataSetds=newDataSet();using(MySqlDataA......
  • 深入理解C++中的同步并发操作(c++ concurrency in action 第四章总结)
    深入理解C++中的同步并发操作(c++concurrencyinaction第四章总结)第四章详细介绍了C++中的各种并发工具,包括条件变量、std::future和std::async、带超时的wait、std::packaged_task和std::promise,以及如何使用这些工具来简化代码。本总结将依次介绍这些工具的用法......
  • 深入理解C++中的const:函数参数与成员函数的最佳实践
    const关键字在C++中有多种用途,它的主要作用是定义不可修改的变量或数据,使得代码更加安全和清晰。具体使用场景包括:定义常量变量:使用const定义的变量在初始化后不能被修改。这样可以防止代码中对该变量的意外修改。constintmax_value=100;max_value=200;//错误:尝试......
  • 深度解析:引用 vs 指针,C++程序员必须掌握的核心概念
    引用(Reference)和指针(Pointer)都是C++中非常重要的概念,它们都用于间接访问变量或对象,但在使用方式、语法、内存管理等方面存在显著区别。下面详细解释什么是引用,并展开讨论它与指针的区别。一、什么是引用?引用(Reference)是C++中的一种变量类型,它是已存在变量的一个别名。引用本......