大家都知道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》
分享到:
相关推荐
### PHP正则表达式深入浅出 #### 一、什么是正则表达式 正则表达式(Regular Expression),简称regex或regexp,是一种用于匹配字符串中字符组合的强大工具。它可以用来执行复杂的文本处理任务,比如搜索、替换...
举例来说,若有一个C语言编写的动态链接库中的原生函数say,需要传入Unicode编码的字符数组并打印一段中文字符。使用JNA,开发者可以编写一个Java接口,继承自Library接口,并为原生函数say提供一个Java方法的声明。...
6. **学习资源**:为了深入理解汉字简码和字符编码,可以查阅《Unicode字符集基础》、《深入浅出Unicode》等书籍,以及Delphi官方文档中关于字符串处理和编码的部分。 通过学习和实践这个Delphi例子,初学者不仅能...
《C++深入浅出MFC》是一份专为C++开发者设计的学习资源,旨在帮助他们理解和掌握Microsoft Foundation Classes (MFC)这一强大的Windows应用程序开发框架。MFC是Microsoft为C++程序员提供的一种库,它封装了Windows ...
本资源“深入浅出Java语言程序设计”旨在帮助读者全面理解和掌握Java编程技术,无论你是初学者还是有一定经验的程序员,都能从中受益。 1. **基础概念** - **Java简介**:Java是由Sun Microsystems开发的面向对象...
综上所述,文章深入浅出地解释了文字编码与Unicode的基本原理,强调了Unicode在多语言环境中的重要性,并提供了工具来辅助理解和处理Unicode编码问题。对于理解和处理跨语言文本的开发者和爱好者来说,这是一份非常...
总的来说,本文深入浅出地介绍了Unicode编码的重要性和应用,以及与之相关的技术细节,如代码页、Surrogates等,帮助读者更好地理解和处理与文字编码相关的问题。通过 UniToy,用户可以更直观地探索和实践这些理论...
"深入浅出讲解java"的课件无疑是为那些希望学习或巩固Java基础的初学者量身定制的。以下是对Java的一些核心知识点的详细阐述: 1. **Java简介**:Java是由Sun Microsystems(现为Oracle Corporation)于1995年推出...
- `re.UNICODE`:默认情况下,正则表达式引擎将字符串视为ASCII编码,此标志使得字符串被视为Unicode编码。 - `re.VERBOSE`:允许在正则表达式中使用空白符和注释。 **2. 复杂正则表达式的构建** - 正则表达式...
10. **数据表示与编码**:计算机内部以二进制形式表示数据,但为了处理各种类型的信息,如文本、图像和声音,需要进行特定的编码,如ASCII码、Unicode(UTF-8)和JPEG等。 以上内容构成了计算机原理的核心,理解和...
### Subversion (SVN) 深入浅出解析 #### 一、Subversion 的诞生背景与发展历程 Subversion(简称 SVN),作为一种先进的版本控制系统,它的出现是对早期版本控制系统CVS(Concurrent Versions System)的一次重大...
《深入浅出MFC》是IT领域内一本极具价值的参考书籍,主要针对那些具备一定C++基础并初步了解Visual C++(以下简称VC)的读者。本书由俟杰先生撰写,旨在深入剖析Microsoft Foundation Classes(MFC)框架,帮助...
而《深入浅出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,编码转换,乱码的形成,以及如何从乱码中恢复。
《深入浅出 Python 3》(Dive Into Python 3)是一本旨在帮助读者掌握 Python 3 编程语言的书籍。本书着重介绍了从 Python 2 升级到 Python 3 过程中的变化,特别强调了语法上的变动以及一些重要的概念更新。 - **...
《深入理解计算机系统》是计算机科学领域的一部经典著作,它深入浅出地阐述了计算机系统的运作原理,从硬件到软件,从底层到高层,帮助读者建立起完整的计算机系统认知。随书源码提供了书中所有实例的实现,为读者...