各种不同的编码 无非就是效率 最大化。

我猜测编码的进化流程:

ASCII(American Standard Code for Information Interchange)----满足了美国和西方国家。但是只能传输英文。------->>>

Ansi(American National Standards Institute)------后来各个国家眼热 为了自己的安全,因为要战争吗,设计了自己的一套。可以传输英文和本土语言------->>>

Unicode(Universal code 也可以称UTF-16)-------------后来不打仗了,各个国家要合作共赢,于是国际组织设计了一套包容全球语言的编码,这种编码的最小字节是2个字节,具体哪个国家的语言再前,哪个国家再后,要看这个国家的实力了,非洲没实力,所以只能靠后排,那么就会导致一个非洲英文字母a 都需要4个字节,操蛋。那个时候的中国有点实力还好,大多数常用中文70%只占2个字节,不常用的(30%)占3个字节------------>>>

UTF-8(8-bit Unicode Transformation Format)-------unicode的设计目的是为了用一种设计方式,兼容全球语言,方便全球通信,但是设计的时候,我猜测有过争执,到底 最小字节是1还是2呢。这个是没有答案的,看对谁有利了。如果最小用一个字节 则对西方国家有利。如果最小用2个字节 则对除了西方国家 的其它国家都有利。举例:东方国家 中国 日本 韩国 非洲国家 中东地区的国家 等等。unicode 即UTF-16 用最小2个字节 是一种适中的方法,就是说 牺牲一点西方国家 但是 能兼顾到很多国家 。就这 西方国家不满意了,毕竟 西方国家是贪婪的 资本主义。他们认为 不应该牺牲 他们 来兼顾更多的国家。于是 他们又发明了 或者说 unicode的另一种表达方式 用 最小1个字节开始 来表达。这样 对西方国家 就有利。因为英文只占一个字节,但是对其它国家都不利,因为会导致 其它国家的排序 更靠后。比如中文UTF-8下 50%的中文占两个字节,30%占3个字节,20%占4个字节。

所以根据情况来选择了,如果你是西方国家 不想走向国际的话 就只用 ascii就行 1个字节。如果要走向国际 有两种选择要么UTF-8 要么UNICODE,如果你以本土为主 其它国家为辅 可以UTF-8,如果以其它国家为主

可以UNICODE。

如果你是东方国家 比如中国,不想走向国际 挣很多国家的钱的话 可以用ansi 即GBK 最节省资源。如果你要走向国际 要么UTF-8 要么UNICODE ,中国人口多 中国为主的话 可以 UNICODE 西方为主的话 可以 UTF-8.

凡事有利有弊 ,自己根据情况 酌情选择。

到点了 得赶紧回去吃饭了。

ASCII-->Ansi-->Unicode-->UTF8 关于编码 自己的总结的更多相关文章

  1. 各种字符编码方式详解及由来(ANSI,UNICODE,UTF-8,GB2312,GBK)

    一直对字符的各种编码方式懵懵懂懂,什么ANSI UNICODE UTF-8 GB2312 GBK DBCS UCS……是不是看的很晕,假如您细细的阅读本文你一定可以清晰的理解他们.Let's go! ...

  2. 【转】Unicode utf8等编码类型的原理

    原文地址http://www.cnblogs.com/daxiong2014/p/4768681.html Unicode utf8等编码类型的原理 1.ASCII码  我们知道,在计算机内部,所有的 ...

  3. 编码 ASCII, GBK, Unicode+utf-8

    0. 1.参考 网页编码就是那点事 阮一峰 字符编码笔记:ASCII,Unicode 和 UTF-8 2.总结 美国 ASCII 码 发音: /ˈæski/ :128个字符,只占用了一个字节的后面7位 ...

  4. ascii unicode utf-8 url编码

    ascii 编码 计算机内部,所有信息最终都是一个二进制值 上个世纪60年代,美国制定了一套字符编码ascii ascii 编码就是定义:英语字符与二进制位之间的关系 unixcs unicode编码 ...

  5. [转]Unicode utf8等编码类型的原理

    FROM:http://www.cnblogs.com/daxiong2014/p/4768681.html 1.ASCII码          我们知道,在计算机内部,所有的信息最终都表示为一个二进 ...

  6. 字符编解码的故事(ASCII,GBK,Unicode,Utf-8区别)

    很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物.他们认为8个开关状态作为原子单位很好,于是他们把这称为"字节". 再后来,他们又做了一 ...

  7. Unicode utf8等编码类型的原理

    1.ASCII码  我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte). ...

  8. [转]Python的ASCII, GB2312, Unicode , UTF-8

    2007-12-13 10:50:47|  分类: Python实用软件编|举报|字号 订阅     ASCII 是一种字符集,包括大小写的英文字母.数字.控制字符等,它用一个字节表示,范围是 0-1 ...

  9. Python的ASCII, GB2312, Unicode , UTF-8 相互转换

    ASCII 是一种字符集,包括大小写的英文字母.数字.控制字符等,它用一个字节表示,范围是 0-127 Unicode分为UTF-8和UTF-16.UTF-8变长度的,最多 6 个字节,小于 127 ...

  10. python 保存文本txt格式之总结篇,ANSI,unicode,UTF-8

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA4wAAAEmCAIAAACmsIlUAAAgAElEQVR4nOydezxU+f/HP49WSstKkZ

随机推荐

  1. Spring Cloud Greenwich 新特性和F升级分享

    2019.01.23 期待已久的Spring Cloud Greenwich 发布了release版本,作为我们团队也第一时间把RC版本替换为release,以下为总结,希望对你使用Spring Cl ...

  2. 【TopCoder10697】RabbitNumbering

    [TopCoder10697]RabbitNumbering 题面 Vjudge 给定\(n\)个数,每个数的范围是\([1,ai]\),求所有数都不同的方案数. 题解 把这个直接当做一个套路来用 对 ...

  3. VC 生成后事件 Post-Build Event

    原文链接地址:https://blog.csdn.net/jfkidear/article/details/27313643.https://blog.csdn.net/kevindr/article ...

  4. windows提权基础大全

    Not many people talk about serious Windows privilege escalation which is a shame. I think the reason ...

  5. 关于EMGU CV的那些事——1.环境搭建(win8 vs2012 emgucv3.0)

    http://blog.csdn.net/aptx704610875/article/details/46045689 楼主读研阶段研究图像处理,想用C#实现PTAM/PTAMM算法并用UNITY创建 ...

  6. Codeforces Round #417 (Div. 2)A B C E 模拟 枚举 二分 阶梯博弈

    A. Sagheer and Crossroads time limit per test 1 second memory limit per test 256 megabytes input sta ...

  7. Codeforces Round #407 (Div. 2)A B C 水 暴力 最大子序列和

    A. Anastasia and pebbles time limit per test 1 second memory limit per test 256 megabytes input stan ...

  8. 题解【CF277E Binary Tree on Plane】

    Description 给你平面上 \(n\) 个点 \((2 \leq n \leq 400)\),要求用这些点组成一个二叉树(每个节点的儿子节点不超过两个),定义每条边的权值为两个点之间的欧几里得 ...

  9. Nexus(Maven仓库私服)安装

    一.Nexus介绍 Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven ...

  10. forEach、for+i、map的用法及区别

      array.forEach(callback[, thisObject]); 下面是参数的详细信息: 1. callback : 函数测试数组的每个元素. 2.thisObject : 对象作为该 ...