【学习笔记】一个关于utf8编码转换的问题

在验证某些东西时,需要使用到中文对应的utf8编码,就到网上搜索了utf8编码转换的一些在线工具,发现了些问题。

百度第一页所有的utf8编码在线转换转换出来的结果都不是utf8编码,都是Unicode编码。直到我翻到第二页才找到一个转换正确的工具。

例如我使用汉字转换出来的结果通通都是597D,如下图所示:






转换出来的结果都是Unicode编码。

正确的转换结果如下:

我们常用的汉字Unicode编码范围为4E00-9FA5,对应utf8编码一定是3个字节,所以转换出两个字符肯定是错的。

下面是关于UTF-8编码的简介。

UTF-8简介

UTF-8 由 Unicode Standard [UNICODE]定义。

在 UTF-8 中,在 U+0000…U+10FFFF 范围(UTF-16 可访问范围)的字符使用 1 到 4 个字节序列进行编码。

如果只有一个字节的序列,将高位设置为 0,其余 7 位用于对字符编号进行编码。
在 n 个字节的序列中,n>1,第一个字节的 n 个高位设置为 1,然后有一个位设置为 0。
该字节的剩余位包含字符编号中的位进行编码。后面的字节都将高位设置为 1,后面的位设置为 0,每个字节中留出 6 位来包含要编码的字符中的位。

下表总结了这些不同字节类型的格式。字母 x 表示可用于对字符编号进行编码的位。

Char. number range  |        UTF-8 octet sequence(hexadecimal)    |              (binary)--------------------+---------------------------------------------0000 0000-0000 007F | 0xxxxxxx0000 0080-0000 07FF | 110xxxxx 10xxxxxx0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

将字符编码为 UTF-8 的过程如下:

  1. 从上表的字符数和第一列确定所需的字节数。
    重要的是要注意表中的行是互斥的,即只有一种有效的方法来编码给定的字符。

  2. 根据表的第二列准备字节的高位。

  3. 从字符编号的位中填入标记为 x 的位,以二进制表示。
    首先将字符号的最低位放在序列的最后一个字节的最低位,然后将字符号的下一个高位位放在该字节的下一个高位,以此类推。
    当最后一个字节的 x 位被填满时,移动到倒数第二个字节,然后到前一个,依此类推,直到所有 x 位都被填满。

参考资料

UTF-8


https://blog.csdn.net/u012028275/article/details/122654388

【学习笔记】一个关于utf8编码转换的问题相关推荐

  1. mysql编码转换工具_MySQL GBK→UTF-8编码转换

    MySQL GBK→UTF-8编码转换 2021-01-23 11:20:21483 前言: 第一次写教程,其实算不得教程,只是想总结个转换的手记.如果中间有错误,或者办法不够理想,大家回贴研究下. ...

  2. Linux C gbk utf-8编码转换

    2019独角兽企业重金招聘Python工程师标准>>> 用linux C 下的函数调用创建中文目录.文件等,字符串的编码格式要求是utf-8格式的. 那么如果linux C下如何进行 ...

  3. UTF8编码转换成Unicode

    /************************************************************************************************* * ...

  4. html中转换utf8编码,如何将html网页utf-8编码转换到utf-8编码互转换

    HTML网页是有编码的,在head区域内的这句话是告诉浏览器,该网页采用的是utf-8编码,也就是简体中文编码.当文章/网页中包含繁体中文.日文.韩文时,这些内容可能无法被正确编码. UTF-8是UT ...

  5. bee 字符串转int_beego中gbk和utf8编码转换问题

    beego中gbk和utf8编码转换问题,这个问题非常重要,有时候从gbk采集过来转成utf8也非常重要. func Get_cate_urls(url string) (map[int]string ...

  6. 学习笔记--一个自管理(组织)的多目标进化算法(SMEA)

    学习笔记–一个自管理(组织)的多目标进化算法(SMEA) 摘要:在温和条件下,一个连续m维目标的优化问题的帕累托前沿(解集)可以形成一个(m-1)维的分段连续流形.基于这个性质,这篇文章提出了一个自管 ...

  7. Qt4工作笔记-Linux中Qt4.8.6在GBK和UTF-8编码转换

    目录 基本概念 代码与实例 基本概念 背景是这样的.目前在本人开发的系统里面,有几个程序. 使用Qt管理(通过pro文件,生成Makefile,姑且称为Qt管理把)的后台进程,读取关系型数据库的数据后 ...

  8. Python学习笔记:字符串和编码

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  9. mysql gbk编码 转utf8_MySQL GBK→UTF-8编码转换

    前言: 第一次写教程,其实算不得教程,只是想总结个转换的手记.如果中间有错误,或者办法不够理想,大家回贴研究下. 另外,我也希望我们论坛不仅仅作为闲聊的地方,也希望大家能活跃我们论坛的学习气氛,毕竟我 ...

最新文章

  1. 【leetcode】30. Substring with Concatenation of All Words
  2. C#4.0和VS2010新特性(三)
  3. Spring Boot 揭秘与实战(二) 数据缓存篇 - EhCache
  4. 51nod 1222 最小公倍数计数【莫比乌斯反演】
  5. .Net日志之nlog
  6. 中国代工厂的困惑:把大牌t恤卖到99块3件,还会有人买吗?
  7. Windows系统带你一步一步无脑使用babel
  8. mp3排序软件哪个好用_U盘加密软件_U盘防拷贝软件哪个好用?
  9. 浏览器插件及好用的小工具
  10. 小四轴之第二次飞行篇
  11. Java项目:医院门诊收费管理系统(java+html+jdbc+mysql)
  12. 获取键盘上某键的状态
  13. (1)前言-JsDroid引流脚本混合式开发技术系列教程By飞云脚本学院
  14. ssl证书需要几级域名
  15. uni-app 的 tabBar 图标自制方法
  16. 批量删除多个 PDF 文档空白页
  17. 关于华为云会议的测评
  18. 域控服务器错误事件解决方法,求大神帮忙,域控总有事件报错,事件ID:1864 - winServer论坛 - 51CTO技术论坛_中国领先的IT技术社区...
  19. 今天咱们用Python整一个植物大战僵尸游戏 | 附带源码
  20. Yolov5代码详解——detect.py

热门文章

  1. 硕士论文中期汇报ppt_化学化工学院承办“2020校级创新创业项目中期检查答辩”工作顺利完成...
  2. Springboot+freemarker的宿舍寝室维修上报管理系统源码
  3. mysql跨库分页查询_跨库跨表分页
  4. 长寿命激光在线测径仪 关键看细节
  5. R-FCN 与 Position Sensitive ROI Pooling
  6. 局域网内, A(不可上网)代理到B(可上网)上网
  7. python 异步io框架_Python并发编程之学习异步IO框架:asyncio 中篇(十)
  8. Laravel中curl_multi并发爬取百度关键词排名
  9. Builder设计模式构建NavigationBar
  10. 相电压、线电压、相电流、线电流