unicode是国际通用编码,utf-8编码是unicode编码在网络之间(主要是网页)传输时的一种“变通”和“桥梁”编码。utf-8在网络之间传输时可以节约数据量。所以,使用操作系统无法搜索出txt文本。

按照utf-8创始人的愿望:

端(unicode)——传输(utf-8)——端(unicode),但是,后来,许多网站开发者在开发网页时直接使用utf-8编码。端(utf-8)——传输(utf-8)——端(utf-8)所以,在浏览器上看到的编码是:unicode(utf-8)。正因为在浏览器上这么并列地列出unicode(utf-8),造成许多网友(甚至不少程序员)误认为unicode=utf-8。其实,按照utf-8创始人的原意,在开发网页时使用utf-8编码是错误的做法,并且,早期的浏览器也不支持解析utf-8编码。但是,众人的力量是巨大的,微软不得不“趋炎附势”,在浏览器上支持解析utf-8编码。

问题是:utf-8编码影响了网站开发者,或者说,网站开发者“扩展”了utf-8编码的使用范围。但是,网站开发者仍然无法影响各类文档的开发者,所以,word文档和一些国际通用的文档仍然使用unicode编码而不使用utf-8编码。

事实上计算机只认识 0 和 1,然而我们却可以通过计算机来显示文本,这就是靠编码实现的。编码其实就是约定的一个协议,比如 ASCII 编码约定了大写字母 A 对应十进制数 65,那么在读取一个字符串的时候,看到 65,计算机就知道这是大写字母 A 的意思。

由于计算机是美国人发明的,所以这个 ASCII 编码设计时只采用 1 个字节存储(事实上只用了 7 位,1 个字节有 8 位),包含了大小写英文字母、数字和一些符号。但是计算机在全世界普及之后,ASCII 编码就成了一个瓶颈,因为 1 个字节是完全不足以容纳各国语言的。

大家都知道英文只用 26 个字母就可以组成不同的单词,而汉字光常用字就有好几千个,至少需要 2 个字节才足以存放,所以后来中国制订了 GB2312 编码,用于对汉字进行编码。

然后日本为自己的文字制订了 Shift_JIS 编码,韩国为自己的文字制订了 Euc-kr 编码,一时之间,各国都制订了自己的标准。不难想象,不同的标准放在一起,就难免出现冲突。这也正是为什么最初的计算机总是容易看到乱码的现象。

为了解决这个问题,Unicode 编码应运而生。Unicode 组织的想法最初也很简单:创建一个足够大的编码,将所有国家的编码都加进来,进行统一标准。
没错,这样问题就解决了。但新的问题也出现了:如果你写的文本只包含英文和数字,那么用 Unicode 编码就显得特别浪费存储空间(用 ASCII 编码只占用一半的存储空间)。所以本着能省一点是一点的精神,Unicode 还创造出了多种实现方式。

比如常用的 UTF-8 编码就是 Unicode 的一种实现方式,它是可变长编码。简单地说,就是当你的文本是 ASCII 编码的字符时,它用 1 个字节存放;而当你的文本是其它 Unicode 字符的情况,它将按一定算法转换,每个字符使用 1~3 个字节存放。这样便实现了有效节省空间的目的。

unicode编码和utf-8编码详解相关推荐

  1. js php base64,JavaScript实现Base64编码与解码的代码详解

    本篇文章给大家分享的是jJavaScript实现Base64编码与解码的代码详解,内容挺不错的,希望可以帮助到有需要的朋友 一.加密解密方法使用//1.加密 var str = '124中文内容'; ...

  2. nmmqq.php?/lspc.html,html中的图片直接使用base64编码后的字符串代替详解

    网页中的图片是使用base64编码后的字符串代替了,这个叫做Data URI scheme,下面有个不错的示例,大家可以参考下 最近来了一个网页,里面有图片,但是却没有引用外部的图片资源,很好奇.查看 ...

  3. java中的getnumber怎么用_java安全编码指南之:Number操作详解

    简介 java中可以被称为Number的有byte,short,int,long,float,double和char,我们在使用这些Nubmer的过程中,需要注意些什么内容呢?一起来看看吧. Numb ...

  4. java 置位_java安全编码指南之:Mutability可变性详解

    简介 mutable(可变)和immutable(不可变)对象是我们在java程序编写的过程中经常会使用到的. 可变类型对象就是说,对象在创建之后,其内部的数据可能会被修改.所以它的安全性没有保证. ...

  5. python url解码_对python中url参数编码与解码的实例详解

    一.简介 在python中url,对于中文等非ascii码字符,需要进行参数的编码与解码. 二.关键代码 1.url编码 对字符串编码用urllib.parse包下的quote(string, saf ...

  6. html转换编码格式,html编码转换 html编码设置utf gbk编码转换图文教程

    html编码转换 html编码设置utf gbk编码转换图文教程篇 常用HTML编码之urf-8编码转换为gb2312编码或者gb2312转换为utf-8编码快速转换设置,这里DIVCSS5介绍使用D ...

  7. unicode字符编码表下载_详解字符编码(上)

    作者 | 张奎 字符编码相关问题是软件开发过程中的常见问题,本文对字符编码的概念进行了介绍,并针对字符编码的常见问题给出了解释. 字符编码概念 下面以一个例子来引入对字符编码的介绍,汉字"柯 ...

  8. 字符集和字符编码的类别与区分详解

    目录 1. 字符集和字符编码 编码和解码 字节和字符 字符集和字符编码 2. ASCII 3. GB2312.GBK.GB18030和Big5 GB2312 GBK GB18030 Big5 4. U ...

  9. FatFs 之二 路径规则、字符编码、编码页、卷管理详解

    写在前面 本文的内容部分来自于 FatFs 的官方文档,但是添加了一些额外的章节及内容.其并不是原版 FatFs 的官方文档的翻译.如果关注与 FatFs 的官方文档,请从本文的 参考 章节前去查看即 ...

  10. 存储过程结果更改编码_Docker安装Minio存储服务器详解

    1. 前言 1.1 Minio 简介 1.MinIO 是在 Apache License v2.0 下发布的对象存储服务器. 它与 Amazon S3 云存储服务兼容. 它最适合存储非结构化数据,如照 ...

最新文章

  1. 一次失败的机巡平台对接经历分享
  2. Spring MVC 全局异常处理(1) --SimpleMappingExceptionResolver
  3. Luogu 1941 飞扬的小鸟
  4. 数据库原理与应用(SQL Server)笔记 第一章 数据定义语言和数据操纵语言
  5. IntelliJ IDEA for Mac如何存取自定义快捷键配置文件
  6. 单选不生效为什么_“我这么努力刷题,为什么还是考不过税务师?”
  7. java 参数类型可变_java – 具有可变类型参数的通用
  8. UML学习系统(一)
  9. 卡盟主站搭建_搭建卡盟主站下载|搭建卡盟主站教程 (附带源码)百度云_ - 极光下载站...
  10. Android端测试工具有哪些,android移动app测试几款移动端测试工具分享
  11. JavaScript 进阶技能,中高级前端必备
  12. 用代码实现自反闭包,对称闭包,传递闭包
  13. xcode5 自定义模板
  14. N-gram 语言模型
  15. ES6 import命令和import()函数区别
  16. 《那些年啊,那些事——一个程序员的奋斗史》——07
  17. 如果圆桌骑士有特殊情况(Knights of the Round Table)
  18. Time时间格式化当前时间
  19. ESP8266+OLED屏实现天气预报+温度显示+NTP时间同步6屏带中文显示版本迭代持续更新
  20. Maven 手工上传JAR包到私有仓库

热门文章

  1. Android 手机号输入格式化 3-3-4
  2. 怎么管理一个测试团队
  3. 在Centos7上安装vpnc客户端
  4. 音视频即时通讯—视频客服系统开发
  5. 腹腰部肌肉锻炼(腰会变粗)
  6. oracle允许远程访问
  7. The RK3066/RK30SDK Android 4.2 audio codec has a bug!
  8. OpenGL递归细分四面体法绘制球体
  9. html选择器的定义和使用,CSS选择器用法大全
  10. java释放资源_JAVA 手动释放资源问题