仓酷云

标题: 了解下JAVA的Java字符集条记 [打印本页]

作者: 山那边是海    时间: 2015-1-18 11:03
标题: 了解下JAVA的Java字符集条记
用winrar打包j2ee的程序和用IDE打包应用程序是一样的。按照你的想法,你是不是也希望服务器都整合由一家公司提供呢?
概述
本文次要包含以下几个方面:编码基础常识,java,体系软件,url,工具软件等。
鄙人面的形貌中,将以"中文"两个字为例,经查表能够晓得其GB2312编码是"d6d0cec4",Unicode编码为"4e2d6587",UTF编码就是"e4b8ade69687".注重,这两个字没有iso8859-1编码,但能够用iso8859-1编码来"暗示".
2.编码基础常识
最早的编码是iso8859-1,和ascii编码类似。但为了便利暗示林林总总的言语,渐渐呈现了良多尺度编码,主要的有以下几个。
2.1.iso8859-1
属于单字节编码,最多能暗示的字符局限是0-255,使用于英文系列。好比,字母a的编码为0x61=97.
很分明,iso8859-1编码暗示的字符局限很窄,没法暗示中笔墨符。可是,因为是单字节编码,和盘算机最基本的暗示单元分歧,以是良多时分,仍然利用iso8859-1编码来暗示。并且在良多协定上,默许利用该编码。好比,固然"中文"两个字不存在iso8859-1编码,以gb2312编码为例,应当是"d6d0cec4"两个字符,利用iso8859-1编码的时分则将它拆开为4个字节来暗示:"d6d0cec4"(现实上,在举行存储的时分,也是以字节为单元处置的)。而假如是UTF编码,则是6个字节"e4b8ade69687".很分明,这类暗示办法还必要以另外一种编码为基本。
2.2.GB2312/GBK
这就是男人的国标码,专门用来暗示汉字,是双字节编码,而英笔墨母和iso8859-1分歧(兼容iso8859-1编码)。个中gbk编码可以用来同时暗示繁体字和简体字,而gb2312只能暗示简体字,gbk是兼容gb2312编码的。
2.3.unicode
这是最一致的编码,能够用来暗示一切言语的字符,并且是定长双字节(也有四字节的)编码,包含英笔墨母在内。以是能够说它是不兼容iso8859-1编码的,也不兼容任何编码。不外,相对iso8859-1编码来讲,uniocode编码只是在后面增添了一个0字节,好比字母a为"0061".
必要申明的是,定长编码便于盘算机处置(注重GB2312/GBK不是定长编码),而unicode又能够用来暗示一切字符,以是在良多软件外部是利用unicode编码来处置的,好比java.
2.4.UTF
思索到unicode编码不兼容iso8859-1编码,并且简单占用更多的空间:由于关于英笔墨母,unicode也必要两个字节来暗示。以是unicode方便于传输和存储。因而而发生了utf编码,utf编码兼容iso8859-1编码,同时也能够用来暗示一切言语的字符,不外,utf编码是不定长编码,每个字符的长度从1-6个字节不等。别的,utf编码自带复杂的校验功效。一样平常来说,英笔墨母都是用一个字节暗示,而汉字利用三个字节。
注重,固然说utf是为了利用更少的空间而利用的,但那只是相对unicode编码来讲,假如已晓得是汉字,则利用GB2312/GBK无疑是最节俭的。不外另外一方面,值得申明的是,固然utf编码对汉字利用3个字节,但即便关于汉字网页,utf编码也会比unicode编码节俭,由于网页中包括了良多的英笔墨符。
3.java对字符的处置
在java使用软件中,会有多处触及到字符集编码,有些中央必要举行准确的设置,有些中央必要举行必定水平的处置。
3.1.getBytes(charset)
这是java字符串处置的一个尺度函数,其感化是将字符串所暗示的字符依照charset编码,并以字节体例暗示。注重字符串在java内存中老是按unicode编码存储的。好比"中文",一般情形下(即没有毛病的时分)存储为"4e2d6587",假如charset为"gbk",则被编码为"d6d0cec4",然后前往字节"d6d0cec4".假如charset为"utf8"则最初是"e4b8ade69687".假如是"iso8859-1",则因为没法编码,最初前往"3f3f"(两个问号)。
3.2.newString(charset)
这是java字符串处置的另外一个尺度函数,和上一个函数的感化相反,将字节数组依照charset编码举行组合辨认,最初转换为unicode存储。参考上述getBytes的例子,"gbk"和"utf8"都能够得出准确的了局"4e2d6587",但iso8859-1最初酿成了"003f003f"(两个问号)。
由于utf8能够用来暗示/编码一切字符,以是newString(str.getBytes("utf8"),"utf8")===str,即完整可逆。
<p>
还得说上一点,就java本质而言,是面相对象的,但是你有没有发现,java也不全是,比如说基本类型,int,那他就是整型而不是对象,转换类型是还得借助包装类。
作者: 变相怪杰    时间: 2015-1-26 22:26
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
作者: 分手快乐    时间: 2015-2-4 21:00
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
作者: 透明    时间: 2015-2-10 10:18
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
作者: 活着的死人    时间: 2015-3-1 08:38
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
作者: 莫相离    时间: 2015-3-10 12:59
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
作者: 精灵巫婆    时间: 2015-3-17 07:12
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
作者: 爱飞    时间: 2015-3-24 01:45
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2