`
xly_971223
  • 浏览: 1273927 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

深入浅出unicode

    博客分类:
  • java
阅读更多
大家都知道jvm内部的字符都是unicode表示的,但是什么是unicode捏? 听我讲你知

早在很多年前国际标准化组织(ISO)那些伙计们就感觉ascII那200来个字符是不够用的
所以就想办法重新编码 以容纳全世界所有的字符

办法是:用四个字节表示一个字符,这个编码称之为ISO-10646
你想啊 2的32次方 那字符老多了 有几百亿个吧 手指头多的可以数数 
这四个字节都有个名字
第一个字节:组(group)
第二个字节:面(plane)
第三个字节:行(row)
第四个字节:码(ceil)

但是有人就看ISO那帮伙计们不爽,就联合ms apple ibm sun等众兄弟另高了一套,取其名曰unicode,unicode用2字节表示一个字符
众兄弟们很爽  

但是好景不长 ISO和unicode很快发现了问题:
初衷是要统一编码 到头来还是没统一啊,这不是白忙活了吗?

于是经过双方谈判 unicode加入到ISO-10646的0组0面叫做基本多语言文字面(BMP)
就是说本来2个字节的unicode也变成了4个字节
而实际上用两个字节就能够表示出99%的常用字符,专家们当然发现了这个问题
于是出现了utf-16,utf是ucs/unicode transformation format的缩写
utf-16是这样表示的
bmp字面的字符编码保持不变,即unicode的编码(两个字节)
其他字面的字符按照一定规则把32位转换成两个16位就ok啦
专家就是专家

注:按照一定规则的目的是避免跟bmp编码冲突(个人理解)

但是问题总是一个接着一个
当时的计算机只能处理单字节数据流,怎么办呢? 这当然难不倒专家
于是乎 专家有重新按照一定规则来编码
一个字节的utf-8表示 ascII
二个字节的utf-8表示 。。。
三个字节的utf-8表示 。。。
四个字节的utf-8表示 。。。
一句话:无论是一个字节还是4个字节,通过专家们的规则肯定可以转换成ISO-10646编码,也就能够表示全世界的的任何字符了

参考《深入浅出mysql》

分享到:
评论
1 楼 zhongw 2009-01-20  
语言是深入浅出了,不过还是不太明白unicode是个啥!

相关推荐

    深入浅出JNA—快速调用原生函数

    举例来说,若有一个C语言编写的动态链接库中的原生函数say,需要传入Unicode编码的字符数组并打印一段中文字符。使用JNA,开发者可以编写一个Java接口,继承自Library接口,并为原生函数say提供一个Java方法的声明。...

    delphi得到汉字简码

    6. **学习资源**:为了深入理解汉字简码和字符编码,可以查阅《Unicode字符集基础》、《深入浅出Unicode》等书籍,以及Delphi官方文档中关于字符串处理和编码的部分。 通过学习和实践这个Delphi例子,初学者不仅能...

    c++深入浅出MFC

    《C++深入浅出MFC》是一份专为C++开发者设计的学习资源,旨在帮助他们理解和掌握Microsoft Foundation Classes (MFC)这一强大的Windows应用程序开发框架。MFC是Microsoft为C++程序员提供的一种库,它封装了Windows ...

    深入浅出Java语言程序设计

    本资源“深入浅出Java语言程序设计”旨在帮助读者全面理解和掌握Java编程技术,无论你是初学者还是有一定经验的程序员,都能从中受益。 1. **基础概念** - **Java简介**:Java是由Sun Microsystems开发的面向对象...

    浅谈文字编码和Unicode.doc

    综上所述,文章深入浅出地解释了文字编码与Unicode的基本原理,强调了Unicode在多语言环境中的重要性,并提供了工具来辅助理解和处理Unicode编码问题。对于理解和处理跨语言文本的开发者和爱好者来说,这是一份非常...

    浅谈文字编码和Unicode

    总的来说,本文深入浅出地介绍了Unicode编码的重要性和应用,以及与之相关的技术细节,如代码页、Surrogates等,帮助读者更好地理解和处理与文字编码相关的问题。通过 UniToy,用户可以更直观地探索和实践这些理论...

    java课件,深入浅出讲解java

    "深入浅出讲解java"的课件无疑是为那些希望学习或巩固Java基础的初学者量身定制的。以下是对Java的一些核心知识点的详细阐述: 1. **Java简介**:Java是由Sun Microsystems(现为Oracle Corporation)于1995年推出...

    深入浅出SVN(SubVersion,版本控制系统) (pdf高清晰版)

    ### Subversion (SVN) 深入浅出解析 #### 一、Subversion 的诞生背景与发展历程 Subversion(简称 SVN),作为一种先进的版本控制系统,它的出现是对早期版本控制系统CVS(Concurrent Versions System)的一次重大...

    ES6的pdf,对于React的学习有帮助

    此外,由于ES6的标准是在不断进化的,ES7(即ES2016)也对ES6做了一些补充和改进,例如引入了指数运算符`**`,以及对Array.prototype.includes的添加等,因此了解ES7的相关内容也有助于对ES6的深入理解。 总之,...

    windows程序设计第5版-佩措尔德(附代码)

    而《深入浅出MFC》是侯俊杰先生的作品,这本书是MFC(Microsoft Foundation Classes)库的权威指南。MFC是微软为简化Windows应用程序开发而提供的C++类库,它封装了Windows API,使得开发者可以使用面向对象的方式来...

    编码的本质和乱码的恢复

    本文深入浅出地讨论编码的本质,包括ASCII, ISO 8859-1, Windows 1252, GB2312, GBK, GB18030, BIG5, Unicode, UTF-8, UTF-16, UTF-32,编码转换,乱码的形成,以及如何从乱码中恢复。

    Dive Into Python 3, r916 (2010).pdf

    《深入浅出 Python 3》(Dive Into Python 3)是一本旨在帮助读者掌握 Python 3 编程语言的书籍。本书着重介绍了从 Python 2 升级到 Python 3 过程中的变化,特别强调了语法上的变动以及一些重要的概念更新。 - **...

    深入理解计算机系统 随书源码

    《深入理解计算机系统》是计算机科学领域的一部经典著作,它深入浅出地阐述了计算机系统的运作原理,从硬件到软件,从底层到高层,帮助读者建立起完整的计算机系统认知。随书源码提供了书中所有实例的实现,为读者...

Global site tag (gtag.js) - Google Analytics