首页 > 其他 > 详细

关于字符编码问题

时间:2014-09-04 20:51:00      阅读:291      评论:0      收藏:0      [点我收藏+]

主要注意的一个问题是:std::string 实际是类似一个 vector<char>的结构。 它里面是可以存放 ascii为0 的字符
不算结尾 (否则 unicode方式的编码存放就有问题) 实际长度 用 length()获取

至于string赋值和构造有好几种方式,可以看文档。
举例说明:
char c[10]="wer|\t";
c[4] = 0;
std::string s =c;
由于c是char* 长度只能用strlen获取, strlen遇到0 就结束了,所以就丢失数据了。

构造和赋值,要把长度传进去:
std::string s(c,6); //构造
s.assign(c,6); //赋值, 这个是包括结尾符0的
s.assign(c,5); //这个不包括结尾 0 , 比如protobuf 序列化出来的串,不用多加一个0。

关于字符编码问题

原文:http://www.cnblogs.com/chris-cp/p/3956821.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!