我们先要弄明白原始字符串里的字符用的是何种编码方式,运行如下


   string tmp = "你好world";
for(int i=0;i<tmp.size();++i)
{
printf("%0X ",tmp.at(i));
}

程序输出:
FFFFFFE4 FFFFFFBD FFFFFFA0 FFFFFFE5 FFFFFFA5 FFFFFFBD 77 6F 72 6C 64

很明显,原始的字符串是使用UTF-8编码的,因为它满足UTF-8的编码规则:
  1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码。因此对于英语字母,UTF-8编码和ASCII码是相同的。
  2)对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的unicode码。

  1字节:0xxxxxxx
  2字节:110xxxxx 10xxxxxx
  3字节:1110xxxx 10xxxxxx 10xxxxxx
  4字节:11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

最新文章

  1. Yii2 时间控件之把layDate做成widget
  2. 自定义 TableViewCell 的分割线
  3. 利用缓存实现APP端与服务器接口交互的Session控制
  4. 编程等宽字体Source Code Pro(转)
  5. angularjs中关于当前路由再次点击强制刷新
  6. Unity3d:加载Gif格式图片
  7. Hibernate逍遥游记-第15章处理并发问题-001事务并发问题及隔离机制介绍
  8. 给出一个数组A,找出一对 (i, j)使得A[i] &lt;= A[j] (i &lt; j)并且j-i最大
  9. F - Wormholes
  10. 重构后的程序:通过rsync命令抓取日志文件
  11. 【PHP】震惊,一张图详解递归函数!!!!
  12. python中@classmethod @staticmethod区别
  13. Servlet生命周期 和 继承关系
  14. Spring框架学习04——复杂类型的属性注入
  15. core net 实现post 跟get
  16. 如​何​屏​蔽​C​h​r​o​m​e​、​S​a​f​a​r​i​等​W​e​b​k​i​t​内​核​浏​览​器​文​本​框​和​文​本​域​的​高​亮​边​框​、​可​变​大​小​等​自​动​外​观​处​理
  17. 新增的input
  18. 移动web模拟客户端实现多方框输入密码效果
  19. Swagger实现API文档功能
  20. 常用脚本--Kill所有连接到指定数据库上的回话

热门文章

  1. Asphalting Roads(翻译!)
  2. Swing State: Consistent Updates for Stateful and Programmable Data Planes
  3. Spring+Netty4实现的简单通信框架
  4. PHP面向对象之final关键字
  5. elasticsearch6 学习之批量操作
  6. eclipse错误:Access restriction: The type &#39;BASE64Decoder&#39; is not API
  7. ProcessList.java和adj值
  8. 51nod 1677 treecnt(思维)
  9. java中初始化块、静态初始化块和构造方法
  10. Django获取多个数据及文件上传