01.深入理解乱码的原理
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.深入理解乱码的原理相关推荐
- LSTM 01:理解LSTM原理及训练方法
本文代码运行环境: cudatoolkit = 10.1.243 cudnn = 7.6.5 tensorflow-gpu = 2.1.0 keras-gpu = 2.3.1 相关文章 LSTM 01 ...
- python模块之HTMLParser之穆雪峰的案例(理解其用法原理)
# -*- coding: utf-8 -*- #python 27 #xiaodeng #python模块之HTMLParser之穆雪峰的案例(理解其用法原理) #http://www.cnblog ...
- 通俗易懂理解GBDT算法原理-转
GBDT算法深入解析 https://www.zybuluo.com/yxd/note/611571 通俗易懂理解GBDT算法原理 https://blog.csdn.net/qq_36696494/ ...
- 赠书:深入理解MySQL主从原理
根据经验,想要快速学习一门技术有3种方式. 第一种方式是通过代码来理解它的实现,反推它的逻辑. 这种方式的难度很大,而且起点相对高,能够沉浸其中的人非常少,过程相对来说是苦闷的,但如果能够沉下心来看代 ...
- 不同类的方法 事务问题_深入理解 Spring 事务原理
Spring事务的基本原理 Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的.对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行: 获 ...
- Java 多线程 —— 深入理解 volatile 的原理以及应用
转载自 Java 多线程 -- 深入理解 volatile 的原理以及应用 推荐阅读:<java 多线程-线程怎么来的> 这一篇主要讲解一下volatile的原理以及应用,想必看完这一篇 ...
- 面试精讲之面试考点及大厂真题 - 分布式专栏 05 公司使用什么RPC框架,聊聊你理解的RPC原理
05 公司使用什么RPC框架,聊聊你理解的RPC原理 引言 前些年我们在做一个规模不大的系统的时候,也就是单体架构,一台服务器部署上一个应用和数据库也就够了.但是现代化互联网公司业务逐渐扩大,服务逐渐 ...
- 深入理解K8S网络原理下
承接上文深入理解K8S网络原理上 Service 应用是K8s集群内部可见的而我们发布的应用需要外网甚至公网可以访问K8s如何将内部服务暴露出去? 四层网络只有Node节点网络可以对外通讯现在问题是第 ...
- 深入理解redis复制原理
深入理解redis复制原理 1.复制过程 2.数据间的同步 3.全量复制 4.部分复制 5.心跳 6.异步复制 1.复制过程 从节点执行 slaveof 命令. 从节点只是保存了 slaveof 命令 ...
- 理解mysql 底层原理
理解mysql 底层原理 mysql 关系数据库的一种,开源免费,支持百万级的存储性能.性能稳定.社区活跃 鉴于 本人半路出家,对于一些原理的东西都不怎么了解,正好 无所事事的情况下,翻博客,吸取知识 ...
最新文章
- php sapi linux,PHP内核 - SAPI - Cli
- bartender2020中文版
- 禅道 php api,云禅道有API的方式可以获取数据吗
- Bootstrap CSS 编程规范之语法规范
- 基于机器学习和TFIDF的情感分类算法,详解自然语言处理
- 黄聪:mysql 存在该记录则更新,不存在则插入记录的sql
- POJ3978 Primes【素数筛选+前缀和】
- 15道AI 机器学习笔试题(暂时没有答案)
- mysql工具记录用户的查询语句_MySQL数据库的常用命令语句记录——安全用户语句及函数...
- Struts2之OGNL表达式与值栈对象及常用标签的使用
- Java旅游管理系统本科生毕业设计任务书
- spss25 等待服务器响应出现问题,spss打开配置服务器失败
- 【高等数学】第 2 讲 两个重要的极限定理
- Mac系统关闭体统提示升级
- RRStudio(一)
- Google Open Images Dataset V4
- 5G手机芯片如何选择?
- Reference SoftReference WeakReference PhantomReference Cleaner 的研究与实践
- 20189200余超 2018-2019-2 移动平台应用开发实践第十二周作业
- 有100块钱,每3块钱可以买一瓶汽水,每3个瓶子可以换一瓶汽水。问最后能买几瓶汽水
热门文章
- 委托的定义和使用入门-天轰穿
- 51单片机语音跳绳计播报跳绳数目
- Adobe Illustrator CS3
- 保定华电计算机考研真题,华北电力大学(保定)离散数学试题(含2005年真题)...
- win10下安装SQL2000
- Via板载声卡底噪严重、播放卡顿及耳机与扬声器音源切换问题【解决方法】
- 屏幕录像专家 - 视频压缩教程
- 苹果Magic Trackpad2成功被谷歌团队写进去个Linux
- 小米 线刷 android,小米10 Android 11 Beta 1线刷包已放出,安卓11/MIUI 12二选一
- Mac环境配置MySQL(详细)