1. 前言

专栏介绍
本篇文章是此专栏的第一篇文章,在这之前,请允许我介绍一下本专栏:
你是否在学习过程中遇见了不认识的名词一脸懵逼?
你是否因为计算机的基础知识不合格陷入了学不会的死循环?
你是否在老师讲课的时候被抛出来的一系列名词不知所措?
本专栏就是为了解决这方面的问题
本专栏一周保持一篇左右的更新
喜欢的点点关注 非常感谢

2.什么是乱码

  • 这里不放任何的定义和理论,只用最简单的话来讲
  • 乱码就是你所遇到的"锟斤拷烫烫烫"和一些很奇怪的字符,它们就是乱码

3.逆向分析

我们在因特网上随便复制一段乱码,将它保存为UTF-8格式,使用VS编辑器打开.

3.1 开始分析

  • 现在展现给我们的是一段乱码,我们开始对这段乱码进行逆向分析
  • 我们要找到这些特殊字符是什么

3.2 二进制分析

  • 要想知道一段乱码的默认格式是什么,我们先从二进制开始分析
  • 使用Visual Studio二进制方式进行打开
  • 如图,出现的都是二进制数字,以十六进制进行展示.
  • 我们可以看到很多CD 和CC开头的数据
  • 结合UTF-8编码知识
  • 由此我们可以推断出,CC和CD并不是代表1字符,而是和后面的A4一起,两个字节代表出的一个字符

3.3 验证

  • 为了验证我们上面的猜想,我们把别的数据全部删除,把CD和A4多重复几次.
  • 保存一下,以文本方式打开
  • 现在就变成了一个字符了,因此,我们的猜想正确
  • 复制到网页里,就能查看到效果了
  • 数一下字符上面的符号,正好和我们CD A4的数量一致
  • 因此 我们可以说 我们目前为止的推断完全正确

3.4 这个字符是什么

  • 我们可以从此出发,推断出 : 就是这个字符导致了奇怪的形式
  • 因此,我们去查看一下这个字符在Unicode的编号
  • CD A4只是UTF-8的编号,而不并不是Unicode的编号
  • 根据UTF-8的编码规则,逆向推论,得到编码 : 0364
  • 去搜索0364的unicode,得到结果 : 拉丁的小字母 e
  • 因此,我们得到了结果 : 这个乱码是Unicode中的拉丁小字母e

01.深入理解乱码的原理相关推荐

  1. LSTM 01:理解LSTM原理及训练方法

    本文代码运行环境: cudatoolkit = 10.1.243 cudnn = 7.6.5 tensorflow-gpu = 2.1.0 keras-gpu = 2.3.1 相关文章 LSTM 01 ...

  2. python模块之HTMLParser之穆雪峰的案例(理解其用法原理)

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #python模块之HTMLParser之穆雪峰的案例(理解其用法原理) #http://www.cnblog ...

  3. 通俗易懂理解GBDT算法原理-转

    GBDT算法深入解析 https://www.zybuluo.com/yxd/note/611571 通俗易懂理解GBDT算法原理 https://blog.csdn.net/qq_36696494/ ...

  4. 赠书:深入理解MySQL主从原理

    根据经验,想要快速学习一门技术有3种方式. 第一种方式是通过代码来理解它的实现,反推它的逻辑. 这种方式的难度很大,而且起点相对高,能够沉浸其中的人非常少,过程相对来说是苦闷的,但如果能够沉下心来看代 ...

  5. 不同类的方法 事务问题_深入理解 Spring 事务原理

    Spring事务的基本原理 Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的.对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行: 获 ...

  6. Java 多线程 —— 深入理解 volatile 的原理以及应用

    转载自  Java 多线程 -- 深入理解 volatile 的原理以及应用 推荐阅读:<java 多线程-线程怎么来的> 这一篇主要讲解一下volatile的原理以及应用,想必看完这一篇 ...

  7. 面试精讲之面试考点及大厂真题 - 分布式专栏 05 公司使用什么RPC框架,聊聊你理解的RPC原理

    05 公司使用什么RPC框架,聊聊你理解的RPC原理 引言 前些年我们在做一个规模不大的系统的时候,也就是单体架构,一台服务器部署上一个应用和数据库也就够了.但是现代化互联网公司业务逐渐扩大,服务逐渐 ...

  8. 深入理解K8S网络原理下

    承接上文深入理解K8S网络原理上 Service 应用是K8s集群内部可见的而我们发布的应用需要外网甚至公网可以访问K8s如何将内部服务暴露出去? 四层网络只有Node节点网络可以对外通讯现在问题是第 ...

  9. 深入理解redis复制原理

    深入理解redis复制原理 1.复制过程 2.数据间的同步 3.全量复制 4.部分复制 5.心跳 6.异步复制 1.复制过程 从节点执行 slaveof 命令. 从节点只是保存了 slaveof 命令 ...

  10. 理解mysql 底层原理

    理解mysql 底层原理 mysql 关系数据库的一种,开源免费,支持百万级的存储性能.性能稳定.社区活跃 鉴于 本人半路出家,对于一些原理的东西都不怎么了解,正好 无所事事的情况下,翻博客,吸取知识 ...

最新文章

  1. php sapi linux,PHP内核 - SAPI - Cli
  2. bartender2020中文版
  3. 禅道 php api,云禅道有API的方式可以获取数据吗
  4. Bootstrap CSS 编程规范之语法规范
  5. 基于机器学习和TFIDF的情感分类算法,详解自然语言处理
  6. 黄聪:mysql 存在该记录则更新,不存在则插入记录的sql
  7. POJ3978 Primes【素数筛选+前缀和】
  8. 15道AI 机器学习笔试题(暂时没有答案)
  9. mysql工具记录用户的查询语句_MySQL数据库的常用命令语句记录——安全用户语句及函数...
  10. Struts2之OGNL表达式与值栈对象及常用标签的使用
  11. Java旅游管理系统本科生毕业设计任务书
  12. spss25 等待服务器响应出现问题,spss打开配置服务器失败
  13. 【高等数学】第 2 讲 两个重要的极限定理
  14. Mac系统关闭体统提示升级
  15. RRStudio(一)
  16. Google Open Images Dataset V4
  17. 5G手机芯片如何选择?
  18. Reference SoftReference WeakReference PhantomReference Cleaner 的研究与实践
  19. 20189200余超 2018-2019-2 移动平台应用开发实践第十二周作业
  20. 有100块钱,每3块钱可以买一瓶汽水,每3个瓶子可以换一瓶汽水。问最后能买几瓶汽水

热门文章

  1. 委托的定义和使用入门-天轰穿
  2. 51单片机语音跳绳计播报跳绳数目
  3. Adobe Illustrator CS3
  4. 保定华电计算机考研真题,华北电力大学(保定)离散数学试题(含2005年真题)...
  5. win10下安装SQL2000
  6. Via板载声卡底噪严重、播放卡顿及耳机与扬声器音源切换问题【解决方法】
  7. 屏幕录像专家 - 视频压缩教程
  8. 苹果Magic Trackpad2成功被谷歌团队写进去个Linux
  9. 小米 线刷 android,小米10 Android 11 Beta 1线刷包已放出,安卓11/MIUI 12二选一
  10. Mac环境配置MySQL(详细)