浅显总结ASCII Unicode UTF-8的区别
如果觉得此地排版不好,欢迎访问我的博客
浅显总结ASCII Unicode UTF-8的区别
制作表单时,为了追求更好的用户交互体验,常常会有提示性的内容,比如提醒用户字符的限制。由于英文,中文字符的问题,涉及到编码的转换调整。
ASCII码
计算机的早期使用者大多使用英文,而计算机则以二进制来储存;ASCII规定128个英文字符与二进制的对应关系,通常占据一个字节。ASCII编码包括大写英文,小写英文,英文符号等256个字符。
Unicode编码
随着计算机的普及,各个国家都使用,原来的只限于英文的ASCII码不够用,90年代重新制定Unicode编码,也称为统一码,万国码。Unicode字符集 覆盖了所有的字符,为每个字符进行统一编号,分配唯一的字符码
UTF-8
UTF-8是一种编码方式,其他的编码方式譬如:UTF-16等等,用UTF-8为了将Unicode里面的英文字符为1个字节,其他不常见的字符(中日韩文等)用2-4个字节,主要为了减少文件大小,方便文件的传输。
关系
总的来说,ASCII码是英文专属;Unicode码是ASCII码的拓展,即任何语言通用;UTF-8则是对Unicode码的编码方式。
ASCII码和Unicode码都是字符集,不同的是ASCII码和具体的编码方案绑定一起,而Unicode码则与具体的编码方法隔离开,即UTF-8是最为普遍的Unicode编码方案。这样,所谓ASCII码也就成为UTF-8的一部分了。
虽然每个字符在Unicode字符集中都能找到唯一确定的编号,但决定最终字节流的是具体的字符编码(即编码方案是怎么样的)。


一些术语
字符集 (charset set):字符的集合,已编号的字符有序的集合
字符码 (code point):字符集中每个字符的数字编码,比如:GBK字符集使用区位码的方式为每个字符编号,定义94*94的矩形,每个汉字放入矩形中,‘中’字放在54区第48位。字符码就是5448
编码 :将字符串转换为字节流
解码 :将字节流解析为字符
字符编码 (character encoding):将字符集中的字符码映射为字节流的一种具体实现方案
计算机字符编码工作方式
计算机内存中,统一使用Unicode编码,当保存到硬盘或传输时,就转换为UTF-8编码
记事本编辑时候,从文件读取UTF-8字符被转换为Unicode字符到内存,保存时则将Unicode转为UTF-8保存到文件

浏览网页时候,服务器把动态生成的Unicode内容转换为UTF-8再传输到浏览器

表单验证
function getLength(str){ //利用字符串replace方法和正则解决非英文长度问题
return str.replace(/[^\x00-\xff]/g,'xx').length //匹配超过ASCII码的字符,用16进制表示的
}
function length(){
var len=0;
for(var i=0;i<text.value.length;i++){ //str.charCodeAt()返回的是ASCII码
if(text.value[i].charCodeAt()<0||text.value[i].charCodeAt()>255){
len+=2
}else{
len++
}
}
}
参考资料
浅显总结ASCII Unicode UTF-8的区别的更多相关文章
- ASCII UNICODE UTF "口水文"
最近接了一个单是需要把非 UTF-8 (No BOM)编码的文件转换成 UTF-8 (No BOM),若此文件是 UTF-8 但带有 BOM ,需要转换成不带 BOM 的.于是开启了一天的阅读.首先花 ...
- 浅谈ASCII 、ISO8859-1、GB2312、GBK、Unicode、UTF-8 的区别。
浅谈ASCII .ISO8859-1.GB2312.GBK.Unicode.UTF-8 的区别. 首先,先科普一下什么是字符编码.字符是指一种语言中使用的基本实体,比如英文中的26个英文字母,标点符号 ...
- unicode编码与utf-8 区别
unicode编码与utf-8 区别 如果是为了跨平台兼容性,只需要知道,在 Windows 记事本的语境中: 所谓的「ANSI」指的是对应当前系统 locale 的遗留(legacy)编码.[1] ...
- AJPFX解析关于编码ansi、GB2312、unicode与utf-8的区别
大家平时遇到乱码问题是否有自己的一套解决方案?这篇文章就是介绍一下常用的编码方式关于编码ansi.GB2312.unicode与utf-8的区别 先做一个小小的试验: 在一个文件夹里,把一个txt文本 ...
- Unicode(UTF&UCS)深度历险
Unicode(UTF&UCS)深度历险 计算机网络诞生后,大家慢慢地发现一个问题:一个字节放不下一个字符了!因为需要交流,本地化的文字需要能够被支持. 最初的字符集使用7bit来存储字符,因 ...
- 从字符集发展史看Unicode和UTF-8的区别
从字符集发展史看Unicode和UTF-8的区别 版权声明 本文并非本人原创,其内容来源于网络,本文根据其演绎而来,具体出出已经无法考证,在这里只好给出我所参考的连接. 知乎 https://www. ...
- 字符编码 ASCII,Unicode和UTF-8的关系
转自:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143166410626 ...
- 字符编码 ASCII unicode UTF-8
字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题. 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特(bit)作为一个字节(b ...
- Python2.7 中文字符编码 & Pycharm utf-8设置、Unicode与utf-8的区别
Python2.7 中文字符编码 & Pycharm utf-8设置.Unicode与utf-8的区别 zoerywzhou@163.com http://www.cnblogs.com/sw ...
随机推荐
- hbase完全分布式安装
hbase完全分布式安装 http://hbase.apache.org/book.html#standalone_dist master ...
- solrcloud(solr集群版)安装与配置
1 Solr集群 1.1 什么是SolrCloud SolrCloud(solr 云)是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用 SolrCloud.当一个系统的 ...
- ios7对于NSString对象进行了的变更
1.instancetype替代id来做返回值的类型.
- log4j:ERROR Category option " 1 " not a decimal integer.错误解决
log4j.properties 的配置文件中: log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{ 1 }: ...
- 全新的软件项目,好的开始决定了成功一半!(需求&计划)
刚看完“无问西东”,电影里说人总归还是要留下些足迹(文字)的,那么赶紧跑图书馆来留下些文字. 最近去瑞士启动了一个新的项目,那么早上做项目,晚上总结留下了一张张思维导图来记录当时的感受, 手稿如下,字 ...
- (2-3)Eureka详解
基础架构 服务注册中心 服务提供者 服务消费者 服务治理 服务提供者 服务注册.在服务注册时,需要确认一下eureka.client.registerwith-eurek=ture参数是否正确,默认是 ...
- Redis跟Spring整合,sentinel模式
普通模式整合 一.在pom.xml中引入redis的依赖 <dependency> <groupId>org.springframework.data</groupId& ...
- CentOS 7 修改SSH端口号 和 ssh无法使用密码登录 和 查看pid 端口占用
如下示例把SSH默认端口22改为122. 1 修改/etc/ssh/sshd_config文件 #Port #找到改行,如果还想继续使用该端口,可以把#去掉,如果使用新端口,可以默认不管 Port # ...
- Linux上常用软件安装和总结
Linux总结: 以前只顾着撸码,Linux这些一般都是运维玩的,然后也没怎么折腾过,每次上线也都只是发布下,最多也就是启停服务器.最近闲来无事就玩了玩Linux,还挺好的. 这里做一个总结来结束Li ...
- word中正文分栏重新换页问题
小论文常需要正文分栏,但是标题.摘要不分栏的编排格式. 1.在摘要后面加入分隔符来将内容分为摘要和正文两个部分.选择 插入→分隔符→分节符(连续). 2.然后进行分栏.选择 格式→分栏. 3.此时如果 ...