编码Unicode与解码
1.编码(Unicode)
unicode(统一码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
最早的计算机在设计时采用8个比特(bit)作为一个字节(1字节=8位,即1个字节对应8位二进制数),一个字节能表示的最大的整数是255,0-255被用来表示大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码。
中国字比较多,1个字节只能表示256个字符,2个字节是2*8=16位,可以表示65535个字符。6万多个足以表示我们经常用的那些字了。所以我们用2字节表示汉字。且不能和ASCII编码冲突,所以中国制定了GB2312编码,用来把中文编进去。
类似的,日文和韩文等其他语言也有这个问题,为了统一所有文字的编码,Unicode营运而生。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。Unicode给所有的字符指定了一个数字用来表示该字符。
Unicode仅仅只是一个字符集,规定了符合对应的二进制代码,至于对这个二进制代码如何存储并没有任何规定。
unicode编码系统,可以分为编码方式和实现方式两个层次。
通用字符集(Universal Character Set, UCS)是由ISO制定的ISO 10646(或称ISO/IEC 10646)标准所定义的标准字符集。UCS-2用两个字节编码,UCS-4用4个字-节编码。
UTF是“Unicode Transformation Format”的缩写,可译为Unicode字符集转换格式,即怎样将Unicode定义的数字转换成程序数据。
2.Unicode编码方案
Unicode没有规定字符对应的二进制码如何存储。Unicode只规定了字符对应的二进制数据,但是没有规定这种二进制数据在内存中具体用几个字节存储。为了较好的解决Unicode的编码问题,UTF-8是在互联网上使用最广的一种Unicode的实现方式(之一)。UTF-8最大的特点是可变长,可以使用1-4个字节表示一个字符,根据字符的不同变换长度。
Bytes的数据与字符串类型数据的转换就是编码与解码的转换,utf-8是编码时指定的格式。
3.编码与解码
编码 / 解码本质上是一种映射(对应关系)。
编码:真实字符与二进制串的对应关系,真实字符——>二进制串
解码:二进制串与真实字符的对应关系,二进制串——>真实字符
编码Unicode与解码相关推荐
- 韩文编码python_python中的字符串编码问题——4.unicode编解码(以实际工作中遇到的韩文编码为例)...
韩文unicode编解码 问题是这样,工作中遇到有韩文数据出现乱码,说是unicode码. 类似这样: id name323 52186863 149 63637538 314 65516863 32 ...
- 字符编码 unicode 及其在javascript 中的使用
一.javascript 使用 unicode16 字符集,可以使用中文变量名和函数名 计算机使用 8 位(bit)二进制表示一个字节(Byte),计算机内存最小寻址单位就是 1 字节. 早期为了在计 ...
- 编码 unicode 及其在 javascript 中的使用
编码 unicode 及其在 javascript 中的使用 一.javascript 使用 unicode16 字符集,可以使用中文变量名和函数名 计算机使用 8 位(bit)二进制表示一个字节(B ...
- python中unicode编码表_Python中的字符串操作和编码Unicode详解
本文主要给大家介绍了关于 Python中的字符串操作和编码Unicode的一些知识,下面话不多说,需要的朋友们下面来一起学习吧. 字符串类型 str:Unicode字符串.采用''或者r''构造的字符 ...
- 站长在线Python精讲:Python中字符串编码转换encode编码和decode解码详解
欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<Python中字符串编码转换:encode编码和decode解码详解>.本知识点主要内容有:常用编码简介.使用encode( ...
- 各种编码UNICODE、UTF-8、ANSI、ASCII、GB2312、GBK详解
GBK,ISO-8859-1,GB2312的本质区别 编码有几种 ,计算机最初是在美国等国家发明的 所以表示字符只有简单的几个字母只要对字母进行编码就好 我们标准码 iso-8859-1 这就是一个标 ...
- WebRTC VideoEngine超详细教程(三)——集成X264编码和ffmpeg解码
转自:http://blog.csdn.net/nonmarking/article/details/47958395 本系列目前共三篇文章,后续还会更新 WebRTC VideoEngine超详细教 ...
- python decode()函数 (使用登记用于编码的编解码器解码字节)
def decode(self, *args, **kwargs): # real signature unknown"""Decode the bytes using ...
- 关于支付接口回调地址参数字段是“notify_url”,签名过后的特殊字符url编码以后再解码后出现错误(¬ , ¢, ¤, £)
今天对接支付接口,参数拼接完了,开始调用的时候,一直报错,签名错误. 但是我用第三方给的签名测试mode测试签名,返回的是true. 这就非常他娘的奇怪. 经过一个个参数对比,我发现,notify_u ...
最新文章
- 为什么vs数据库中文显示问号_本科论文知网不收录为什么会被知网查重到?
- 从易于扩展扩展的角度来设计FizzBuzzWhizz
- 【Java框架】 Hibernate与Mybatis对比
- VNC介绍(第一篇)
- BEGINNING SHAREPOINT#174; 2013 DEVELOPMENT 第14章节--使用Office Services开发应用程序 Excel Services中新功能...
- MyBatis在Oracle中插入数据并返回主键的问题解决
- oracle基本的操作
- [蛋蛋无厘头日记]约会ing~~
- 华为宣布方舟编译器将于8月31日
- oracle sqlLoader 批量导入工具使用说明
- [转]ASP.NET MVC 入门3、Routing
- Microsoft.Office.Interop.Excel 报错
- 不透明度十六进制_十六进制不透明度表
- R语言manova函数多元方差分析(MANOVA)、单因素多元方差分析的两个假设是多元正态性和方差-协方差矩阵的齐性、QQ图评估多元正态性、mvoutlier包中的aq.plot函数检验多变量异常值
- win7设置护眼模式
- android 重力感应小球 Demo
- MiniGUI编程指南
- Python | peewee.InterfaceError
- 阿拉伯数字小写金额转换成中文大写金C额程序说明
- GBase 8c 远程数据库连接