A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 aynulily 于 2014-3-25 12:32 编辑

为什么有那么多的编码方式啊,Unicode,utf,ascii, 这么多不会乱吗

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

3 个回复

倒序浏览
一般我们项目中进行编码转换大多数情况下使用UTF-8的编码。
UTF-8是一种针对Unicode的可变长度字符编码。UTF-8用1到4个字节编码UNICODE字符。用在网页上可以同一页面显示中文简体繁体及其它语言(如日文,韩文)
回复 使用道具 举报
这是随着时代的发展逐步建立起来的。
最初美国人发明了计算机,而英语只有26个字母,所以大家觉得用一个字节存储一个字符编码就够了,这就是ANSI编码。
后来计算机走向了世界,在很多语言中,一个字节存储一个字符编码已经存不下很多语言中的常用字符了(比如中文),所以大家决定用两个字节存储一个字符编码,这就是Unicode编码。
再后来,有人觉得Unicode太浪费了,因为很多字符的编码(ANSI的那部分)其实用一个字节存储就足够了,所以发明了存储长度可变的编码格式,这就是UTF-8编码。
至于ASCII,我也不太清楚,刚才查了下说好像ASCII是ANSI的标准,ANSI是它的一个具体实例……
回复 使用道具 举报
简单的说,为什么需要编码? 比如,我们的计算机中需要表示字母'a','b'等等字母,然而这些字母如何在计算机内存中表示?众所周知,在计算机内存中数据是以二进制来表示的,这样,我们就需要将这些需要表示的字母和数字或者符号转换成能在计算机中表示的二进制表示,这就是编码的意义所在。

将字符编码成内存中的二进制表示,首先需要对字符集进行编码表示,每个编码代表一个固定的字符。然后再将这个字符的编码转换成内存中的二进制表示。

计算机常用字符的编码主要分为两种:ASCII码和Unicode码。

1. ASCII 码

   ASCII(American Standard Code for Information Interchange) 美国信息互换标准代码,是基于拉丁字母的一套电脑编码系统。ASCII是标准的单字节字符编码方案,用于基于文本的数据,使用7位或者8位的二进制组合起来表示128或者256中可能的字符。

ASCII码最大的缺点就是只能表示美国英语中常用的字符数字和符号,不能表示其他语言中的字符符号等,比如中文中的汉字。

2. Unicode 码

Unicode码是能够容纳世界上所有的文字和符号的编码方案,成为统一码,满足跨语言跨平台的需求,Unicode码是基于通用字符集(Universal Character Set)的标准发展起来的。Unicode码能够容纳所有的字符符号等,所以被使用的更加广泛,ASCII几乎不怎么用了。

以上两种编码方式说明了如何将常用的字符进行编码,并赋予每个字符一个code point(a number)来表示,这个是固定的。方便以后的应用。比如汉字"字"对应的Unicode编码为23383.

在这两种编码表示的基础上,就可以将编码表示成内存中可以使用的二进制方式了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马