文档章节

造UTF8的std::string

u22b
 u22b
发布于 2017/06/03 22:30
字数 100
阅读 4
收藏 0
点赞 0
评论 0

在VC++的世界里,MS比较鼓励使用_UNICODE,std::wstring。VC++默认构造std::string的时候是ANSI格式。

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

int main(int argc, char *argv[])
{
    std::wstring str = L"123,我是谁?我爱钓鱼岛!";

    std::wstring_convert<std::codecvt_utf8<wchar_t>> conv;

    std::string narrowStr = conv.to_bytes(str);
    {
        std::ofstream ofs("c:\\test.txt");
        ofs << narrowStr;
    }

    std::wstring wideStr = conv.from_bytes(narrowStr);
    {
        std::locale::global(std::locale("Chinese-simplified"));
        std::wofstream ofs(L"c:\\testW.txt");
        ofs << wideStr;
    }
}

 

本文转载自:http://cache.baiducontent.com/c?m=9d78d513d98207f94fece4690c65c067694381102bd6a0543994c814c6735b3000

共有 人打赏支持
u22b
粉丝 0
博文 18
码字总数 1868
作品 0
海淀
高级程序员
rust socket 客户端例子

用到std::io::TcpStream;std::string::String;代码如下: 明天再来个服务器端的。

gotham ⋅ 2014/07/18 ⋅ 0

c++学习总结:标准库字符串和C语言字符串的转换

1、std::string转换为const char *字符串, std::string cppName = “DELUOBA”;const char *cName = cppName.c_str(); 2、const char *字符串转换为std::string, const char *cName = “X......

召唤攻城狮 ⋅ 2014/05/29 ⋅ 0

cocos2d-x解决中文乱码问题的几种办法

将源代码文件保存为utf8编码,不过由于编译器的问题,这种方式会导致很多无法预测的问题 将字符串用utf8编码集中存到一文件中,然后用代码读取这些字符串来使用,这种办法还能很好的支持多语...

欧阳俊文 ⋅ 2013/09/26 ⋅ 0

fstream类读取UTF-8、Unicode和ANSI文本文档乱码问题的解决方案

1、解决UTF-8类型的文本文档中文乱码读取(思路:将UTF-8转成Unicode然后再转ANSI) #include <fstream> #include <iostream> #include <string> // #include <afx.h> #include <Windows.h> ......

Yong_Luo ⋅ 2011/05/28 ⋅ 1

TeamTalk初学笔记2---关于win-client【第一篇】

为了直观的修改TT客户端页面,我花了很多时间在网上寻找UIDesigner设计工具。最后实在是找不到了,就找了同事帮忙,他climb over the wall(这个词都成敏感词汇了?博客里居然不准用)之后终...

pengmx ⋅ 2015/09/08 ⋅ 0

ajson 0.2.0版发布,飞快的JSON C++序列化库

http://git.oschina.net/lordoffox/ajson ajson a utility for serialize C++ and json. 动机: 为什么要设计ajson? 在工作中经常有这样的需求,获得一段json编码的文本,将它解析为dom对象...

lordoffox ⋅ 2016/02/19 ⋅ 16

问一个编码转换的问题(c++ boost向)

我现在遇到一个问题,需要将utf16文件读取到std::string 然后将字符串转成utf8 我用的是boost::locale::conv::utftoutf((wchart*)(strContent.cstr())); 这在windows下是没问题的,因为win...

稀饭桶子 ⋅ 2016/09/27 ⋅ 1

v8插件编译使用

目的:通过c++扩展新模块。 例子代码 wget http://nodejs.org/dist/v0.8.8/node-v0.8.8.tar.gz 解压后在./node-v0.8.8/test/addons/hello-world 一、编写模块: #include <node.h> #include......

最新更新消息 ⋅ 2015/12/07 ⋅ 0

Locale: std::locale

Demo_1: 1,其中 std::cout.imbue(std::locale::classic())是把 古典的 C locale指派给标准输出通道. 所谓的 古典 C locale,其实就是采用ASCII字符集以及默认的日期格式化方式, 而没有用其他...

SHIHUAMarryMe ⋅ 2016/09/27 ⋅ 0

Android NDK 吐槽集(不定期更新)

Android NDK对于wchar_t和wcs的支持就是一堆屎.别想轻易使用UTF16编码.相比Win上的C++开发对于各种字符编码支持美若天堂,以前居然没发现. 强制wchar_t编译为2字节,wcs系函数不正确,还要自己实...

小耶果 ⋅ 2014/05/12 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

在java中读取文件(也支持读取jar中的文件)

getClass().getResourceAsStream("文件名.格式"); 这个方法是用于获取当前类所在目录下的文件;需要将文件放到和当前类同一个包下面 比如我有个类在 com.test这个包下, 要读取一个test.jpg的图...

太黑_thj ⋅ 49分钟前 ⋅ 0

CentOS 7 源码编译安装 MySQL 5.7记录

没事瞎折腾,本来可以yum安装,却偏偏去要编译源码。 1. 安装依赖包 1). 安装cmake等依赖 # yum install cmake ncurses ncurses-devel bison bison-devel 2). 安装boost 1.59.0 # wget htt...

admin_qing ⋅ 51分钟前 ⋅ 0

tcp/ip详解-链路层

简介 设计链路层的目的: 为IP模块发送和接收IP数据报 为ARP模块发送ARP请求和接收ARP应答 为RARP模块发送RARP请求和接收RARP应答 TCP/IP支持多种链路层协议,如以太网、令牌环往、FDDI、RS-...

loda0128 ⋅ 今天 ⋅ 0

spring.net aop代码例子

https://www.cnblogs.com/haogj/archive/2011/10/12/2207916.html

whoisliang ⋅ 今天 ⋅ 0

发送短信如何限制1小时内最多发送11条短信

发送短信如何限制1小时内最多发送11条短信 场景: 发送短信属于付费业务,有时为了防止短信攻击,需要限制发送短信的频率,例如在1个小时之内最多发送11条短信. 如何实现呢? 思路有两个 截至到当...

黄威 ⋅ 昨天 ⋅ 0

mysql5.7系列修改root默认密码

操作系统为centos7 64 1、修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables=1 这一行配置让 mysqld 启动时不对密码进行验证 2、重启 mysqld 服务:systemctl restart mysql...

sskill ⋅ 昨天 ⋅ 0

Intellij IDEA神器常用技巧六-Debug详解

在调试代码的时候,你的项目得debug模式启动,也就是点那个绿色的甲虫启动服务器,然后,就可以在代码里面断点调试啦。下面不要在意,这个快捷键具体是啥,因为,这个keymap是可以自己配置的...

Mkeeper ⋅ 昨天 ⋅ 0

zip压缩工具、tar打包、打包并压缩

zip 支持压缩目录 1.在/tmp/目录下创建目录(study_zip)及文件 root@yolks1 study_zip]# !treetree 11└── 2 └── 3 └── test_zip.txt2 directories, 1 file 2.yum...

蛋黄Yolks ⋅ 昨天 ⋅ 0

聊聊HystrixThreadPool

序 本文主要研究一下HystrixThreadPool HystrixThreadPool hystrix-core-1.5.12-sources.jar!/com/netflix/hystrix/HystrixThreadPool.java /** * ThreadPool used to executed {@link Hys......

go4it ⋅ 昨天 ⋅ 0

容器之上传镜像到Docker hub

Docker hub在国内可以访问,首先要创建一个账号,这个后面会用到,我是用126邮箱注册的。 1. docker login List-1 Username不能使用你注册的邮箱,要用使用注册时用的username;要输入密码 ...

汉斯-冯-拉特 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部