当前位置: 首页 > 编程日记 > 正文

编码的细微区别

 在编程学习的深入后,不可避免的会遇到ANSI、GB2312、UTF8的编码问题,如果不彻底了解他们的区别,都最终会造成一个问题--乱码!想要更好的了解编码,我们首先应该了解编码的历史演变。

在继续学习之前先明白一下转化关系吧

 8位bit=1字节(byte)  1024byte(字节)=1kb   1024kb=1MB 。。。。 

一,ASCII码

我们都知道计算机起源于美国,早期的计算机只是用于科学计算,但是在计算机迅速发展时,计算机被要求不仅仅能够进行数值计算,还要进行字符处理和表示。于是一套名为ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)码的编码方式被创造而出,使用7位(bit)来表示一个字符,总共能够表示128种字符。

后来随着计算机越来越流行,这128中字符变得远远不够后来就新增了一位,变成了8位(bit)。

在ASCII码中一个字母占一个字节,不含有中文

详情请参考https://baike.baidu.com/item/ASCII/309296?fr=aladdin

二,GB2312

当计算机普及到全世界时,各个国家面临的首要问题就是要针对自己国家的语言制定一套自己国家的编码规范,我国就提出里一套针对中文的GB2312的编码方式,这套编码方式基于ASCII码(并非IBM的ASCII扩充版本),使用2个字节表示一个汉字,具体的方式是前127个字符不变。当第一个字节(高字节)大于160的时候,表示一个汉字的开始,再用这个字节组合第二个字节(低字节,范围也是160-255)共同表示一个汉字。总的来说GB2312 占2个字节,支持6700+汉字

三,GBK

详情请参考https://baike.baidu.com/item/GBK%E5%AD%97%E5%BA%93/3910360?fr=aladdin&fromid=481954&fromtitle=GBK

中国人使用双字节(第一个字节大于127,第二个字节随意)拓展了中文的编码范畴,称为GBK编码(已经包含了GB2312的所有内容,外增加了20000多个简繁字体),以前在我国流行,现在用的也比较少了。GBK GB2312的升级版,支持21000+汉字,其中英文字母占一个字节,中文占两个字节。

四,GB18030

详情参考请https://baike.baidu.com/item/gb18030/3204518?fr=aladdin

GB18030-2005的主要特点是在GB18030-2000基础上增加了CJK统一汉字扩充B的汉字。

五,UNICODE

详情请参考https://baike.baidu.com/item/Unicode/750500?fr=aladdin

为了统一全世界的文字编码,ISO(国际标准化组织)制定了一种新的编码规范,这种编码规范将全世界的文字放在一张表内,称它为"Universal Multiple-Octet Coded Character Set",简称 UCS, 俗称"UNICODE"。请注意,Unicode和GBK、BIG5等ANSI编码仍然没有一种直接的算法进行转换,Unicode在制定时可以看成是废了所有的地区性编码,重新制定的编码,也不是从ASCII继承而来(但是前128字符仍保留为ASCII字符)。2-4字节 已经收录136690个字符,并还在一直不断扩张中。在Unicode编码中一个英文占两个字节,一个中文占两个字节。

六,utf-8

互联网兴起,UNICODE为了适应网络传输,出现了面向传输的众多 UTF(UCS Transfer Format)标准,顾名思义,UTF8就是每次8个位传输数据,而UTF16就是每次16个位,只不过为了传输时的可靠性,从UNICODE到 UTF时并不是直接的对应,而是要过一些算法和规则来转换。在utf-8编码中一个字母占1个字节,中文占三个字节。

总的来说常用的是ASCII码,utf-8,Unicode这三种编码方式,记住的是在三个中只有unicode的一个英文占两个字节,其他两个占一个字节。ASCII码中不支持中文,utf-8中文占三个字节,unicode占两个字节。

转载于:https://www.cnblogs.com/zzqit/p/9169264.html

相关文章:

Axel之 -axel_do剖析

axel_do主体部分,尝试从多个连接select方式去读取数据,如果读取失败或者连接超时就重新连接。 下面是代码分析. //下载的主循环void axel_do( axel_t *axel ){ fd_set fds[1]; int hifd, i; long long int remaining,size; …

win10键盘全部没反应_Win10笔记本键盘失灵怎么办 Win10键盘失灵解决方法【详解】...

相信现在已经有很多朋友都已经成功升级了win10正式版,不过最近有用户反映,升级Win10笔记本键盘失灵怎么办?下面迅维小编整理了一些常见的原因与解决办法,供大家参考尝试解决。Win10笔记本键盘失灵的原因一1、没有开启小键盘很多笔记本都带有…

基于链接的排序算法

基于链接的排序算法似乎已广泛应用到各种商业seohua.net”> 搜索引擎中。为了让设计出来的网站能够在各种搜索引擎中获得较高排名,设计者们应该知道这些算法的原理。Google排名的成功意味着PageRank算 法值得特别的关注。PageRank算法是少数几个公开的排序算法之…

Spring Boot配置全局异常捕获

1 SpringBoot配置全局的异常捕获 项目的说明 配置thymeleaf作为视图模板ExceptionController.java模拟测试用MyAjaxExceptionHandler.java捕获到异常以ajax形式返回MyExceptionHandler.java捕获到异常以页面形式返回ajaxerror.html这个是测试返回ajax异常的页面error.html以页面…

一步一步Asp.Net MVC系列_权限管理总结(附MVC权限管理系统源码)

TZHSWEET:请大家多多反馈问题,我已经在修改中了,已更新版本。。。。。。 如果大家遇到数据库附加问题,EF连接字符串问题,请自行配置,如果有bug反馈可以私聊,我的qq:409180955。 项目已经发布到G…

电脑壁纸励志_励志壁纸 | 要乖 要长大 要努力 要不负众望

全世界只有不到1%的人关注了壁纸阿姨你真是个特别的人2020.4.17要乖 要长大 要努力 要不负众望励志壁纸全文字数:236阅读时间:1分钟图片数目:361“我不懂什么年少轻狂,我只知道胜者为王。”点击图片 长按保存高清原图♥2“愿你以渺…

ubuntu自定义命令

ubuntu中通过alias可以自定义快捷命令 在.bashrc中加入alias指令可以定义快捷命令,以下为我常用快捷命令 alias watwatch -n 1 nvidia-smi alias gohomecd /home/B/gaoye alias cdcodecd /home/B/gaoye/code 转载于:https://www.cnblogs.com/yeran/p/11367988.html

OSPF LSA 类型

路由器LSA:每台路由器都创建1类LSA,用于向连接的每个区域描述自己,在每台路由器中,每个区域的LSDB都包含一个1类LSA,它指出了当前路由器的RID和所有接口的IP地址。1类LSA还用于描述末节网络。网络LSA:每个中…

配件商城项目总结

---恢复内容开始--- 一、在首页导航栏上有一个自动摇晃的手机图标 ,而我一开始设置的是悬浮摇晃 由于将悬浮设置在图片外面的容器(a)上导致效果没出来,而且动画效果一直没出来。 解决方法:将悬浮改成自动播放&#xff…

006本周总结报告

这周基本学完了java的基础中的基础,还不会灵活的应用,相关概念仍然有些模糊。为此,自己将自己学到的知识点做了下系统的复习,并作了相关的笔记。这周编程的大部分时间主要用于小学期PTA的编程作业中(用C语言&#xff0…

excel小写转大写公式_【Excel函数贴】五个技巧性函数小套路

来吧 来吧 来吧 一起舞蹈 什么烦恼可以将我打扰…………1,字母大小写。一个做外贸的朋友问,Excel有没有函数可以把英文从小写变大写?他可能碰到蛮多洋人的人名或者货名需要大小写转换的。小写转大写:UPPER("excel")大写…

DevExpress A field with the name '' was not found on the selected data source.

绑定控件时发现的错误,找了很久终于找到原因了,可能也是大家没注意的地方,希望能给大家带来一些帮助。 自己在找的时候发现,明明是有的。 结果应该是这样的 上面定义实体类的字段写法有缺陷 这样再重新编译运行后就不会出错了。转…

刚申请了Blog,首贴庆祝!

刚申请了Blog,首贴庆祝!转载于:https://www.cnblogs.com/ele-eye/archive/2011/11/17/2252654.html

ReentrantLock实现原理分析

ReentrantLock主要利用CASCLH队列来实现。它支持公平锁和非公平锁,两者的实现类似。 CAS:Compare and Swap,比较并交换。CAS有3个操作数:内存值V、预期值A、要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修…

python编码

Unicode字符集中收录110多万个字符集合。UTF-8(8-bit Unicode Transformation Format),是一种针对 Unicode 的可变长度字符编码方式。使用一到四个字节来编码 Unicode 字符 在计算机内存中统一使用Unicode编码,当需要保存到硬盘或…

MySQL性能测试工具 mysqlslap

先看参数介绍 FormatOption FileDescriptionIntroduced--auto-generate-sqlauto-generate-sqlGenerate SQL statements automatically when they are not supplied in files or using command options --auto-generate-sql-add-autoincrementauto-generate-sql-add-autoincreme…

atlas单机模式代码_用代码玩太无聊,这样玩海盗游戏《ATLAS》单机模式才是正确玩法...

在各大单机游戏中,存在很多的代码给玩家使用,利用这些代码,玩家就能和开了挂似得快速通关。这让不少玩家沉迷于代码的世界而无心享受游戏的乐趣,因此在游戏界中经常有代码毁了一款游戏的说法。这点放在最近才上线的海盗冒险生存游…

iSCSI软件套件 介绍

http://blog.csdn.net/do2jiang/article/details/5062586 iSCSI(Internet SCSI)是2003年IETF(InternetEngineering Task Force,互联网工程任务组)制订的一项标准,这种指令集合可以实现在IP网络上运行SCSI协…

【Computer Vision】 复现分割网络(1)——SegNet

目录 Tags: ComputerVision编译数据处理训练结果ReferenceTags: ComputerVision 编译 src/caffe/layers/contrastive_loss_layer.cpp:56:30: error: no matching function for call to ‘max(double, float)’ Dtype dist std::max(margin - sqrt(dist_sq_.cpu_data()[i]), Dt…

kotlin + springboot 整合redis,Redis工具类编写及单元测试

参考自&#xff1a; https://www.cnblogs.com/zeng1994/p/03303c805731afc9aa9c60dbbd32a323.html 1、maven依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://…

:before和::before的区别

在一次项目中&#xff0c;有一次要用到::selection伪元素&#xff0c;然后开发同学问我&#xff0c;CSS中一个冒号和两个冒号有神马区别&#xff1f; 这好像真的是个问题&#xff0c;或许很多前端同学对此都有疑惑&#xff0c;查了些资料&#xff0c;证实了下两个符号的区别&am…

python下载大文件mp4_python合并大量ts文件成mp4格式(ps:上限是450,亲测)

原博文 2018-08-22 17:34 − 1 import os 2 #exec_str rcopy /b ts/c9645620628078.tsts/c9645620628079.ts ts/1.ts 3 #os.system(exec_str) 4 f open(index.m3u8, r, encod...08595 相关推荐 2019-12-19 14:27 − ts readonly name "xxx"; updateValueAndValidi…

提高网站页面收录的几个方法 返回列表 发新帖回复

首先是清楚网站总体有多少页面。 可以用xenu扫描出所有的页面。 1.html地图 网页数量不是太多&#xff0c;可以用网站地图来增加收录&#xff0c;分成几个地图页面。 2.随机文章模块 在不影响用户体验的情况下&#xff0c;在栏目中增加随机文章模块&#xff0c;增加链接曝光度&…

JSP+Servlet+JavaBean

JSP相当于在HTML页面中加上Java代码&#xff0c;一般在<body>标签中放入主要代码。 在JSP里用<%...%>把Java代码包含起来的。 Servlet的生命周期&#xff1a; ①被服务器实例化后&#xff0c;容器运行init方法。 ②当请求&#xff08;Request&#xff09;到达时&am…

logistic回归 如何_第七章:利用Python实现Logistic回归分类模型

免责声明&#xff1a;本文是通过网络收集并结合自身学习等途径合法获取&#xff0c;仅作为学习交流使用&#xff0c;其版权归出版社或者原创作者所有&#xff0c;并不对涉及的版权问题负责。若原创作者或者出版社认为侵权&#xff0c;请联系及时联系&#xff0c;我将立即删除文…

多年没有管理的技术博客了,即日起开始管理起技术博客

多年没有管理的技术博客了&#xff0c;即日起开始管理起技术博客&#xff0c;希望朋友们一如既往的支持转载于:https://www.cnblogs.com/flashicp/archive/2012/08/14/2639054.html

GNS3的默认Telnet程序改成secureCRT

编辑-首选项-一般里的“终端命令”改为C:\Users\ldy\AppData\Local\VanDyke Software\SecureCRT\SecureCRT.exe /t /telnet %h %p 前面是SecureCRT程序的目录&#xff0c; /t是指建立一个新标签 &#xff0c; /telnet的意思是走Telnet协议&#xff0c; %h是要telnet到的主机&am…

关于Vue实例的生命周期created和mounted的区别

关于作者 程序开发人员&#xff0c;不拘泥于语言与技术&#xff0c;目前主要从事PHP和前端开发&#xff0c;使用Laravel和VueJs&#xff0c;App端使用Apicloud混合式开发。合适和够用是最完美的追求。 个人网站&#xff1a;http://www.linganmin.cn 最近刚写了一个手机在线播放…

UVa 10112 - Myacm Triangles

UVa第一卷最后一题。 求内部不含点并且面积最大的三角形。 暴力。 代码如下&#xff1a; 1 #include<iostream>2 #include<cstdio>3 #include<cmath>4 #include<cstring>5 6 using namespace std;7 8 typedef struct node9 { 10 char ch; 11 i…

[转]ASP.NET1.0升级ASP.NET2.0问题总结

来自&#xff1a;http://www.enet.com.cn/article/2006/0310/A20060310510518.shtml1&#xff0e;Global.asax文件的处理形式不一样&#xff0c;转化后将出现错误 在vs2003中Global.asax具有代码后置文件&#xff0c;2.0下, 将代码分离文件移到 App_Code 目录下&#xff0c;以便…