bit称为位:只能拥有一个值,不是0就是1
Byte称为字节,包括8个bit.一个英文字符占一个字节
Char:字符,表示一个 Unicode 字符,占两个字节,即16 位(bit).范围为从十六进制值 0x0000 到 0xFFFF
unicode都是以16进制表示.getBytes是ascii码表示的.\u是指uniode码
一个16进制占用4个bit,2个16进制为一个字节。
ANSI 编码
每个汉字占2个字节,每个英文和数字字符占1个字节
UNICODE
计算机存放字符串时,改为存放每个字符在 UNICODE 字符集中的序号.目前计算机一般使用 2 个字节(16 位)来存放一个序号(DBCS),因此,这种方式存放的字符也被称作宽字节字符.
在UNICODE中,此时英文和数字也占两个字节.且低位的字节在前。
UNICODE 字符串来说,不管在什么环境下,它所代表的“字符”内容总是不变的。
java中的String是以UNICODE存储的.java使用UTF-16表示内部文本
非 UNICODE 程序中的字符串,都是以某种 ANSI 编码形式存在的。如果程序运行时的语言环境与开发时的语言环境不同,将会导致 ANSI 字符串的显示失败。
比如,在日文环境下开发的非 UNICODE 的日文程序界面,拿到中文环境下运行时,界面上将显示乱码。如果这个日文程序界面改为采用 UNICODE 来记录字符串,那么当在中文环境下运行时,界面上将可以显示正常的日文。
在oracle中
用字节指定:varchar2(12 byte):表示支持最多12字节的数据
用字符指定:varchar2(12 char):表示支持最多12字符数据.可能是多达40字节的信息.
默认值是byte.
如果是utf8,中文占3个字节.
在java中
char 数据类型(和 Character 对象封装的值)基于原始的 Unicode 规范,将字符定义为固定宽度的 16 位实体.java中全部用的是UTF-16.
UTF16-BE:高字节BYTE在前 UTF16-LE:低字节BYTE在前
java中 如果没有feff的标志,则默认为 feff.
java中的数组类型全是有符号的.所以unicode码很多被表示为负数.
char是无符号的,所以虽然short也是2个字节,大小范围却不同.
- tomcat的乱码
在一个编码为 GB2312 的页面,提交 "中" 这个字符串时,提交给服务器的内容为 "%D6%D0".
tomcat默认的是iso-8859-1,会把每一个字节当成一个字符(西方的习惯),所以生成两个char,oxD6和oxD0,再由char生成String。在unicode中oxD6为Ö.所以要使用getBytes得到原始的byte,然后使用 GB2312编码.
String.codePointAt,可以得到String中的第i个元素的unicode编码.
- java中的String
new String,是指让系统把bytes中的数据由encoding指定的编码方式转换成unicode编码
getBytes("gb2312")方法,是指让系统将unicoder的编码,转换成"gb2312"的编码.
String中是以char的数组存储的,char的值是unicoder的编码.一个char代表一个字符...(///代理位的问题,String,char的feff,ffff问题)
如"中"的unicode码是4E2D,getBytes("gb2312")方法,根据4E2D得到"中",再"中"的gb2312码查找得到d6d0.
new String相反的,根据 gb2312由bytesd6d0由bytes找到"中",再由"中"找到unicode码,放入String的char数组中.
java中的转换的本质是byte和char的转换
不错的文章
http://www.cnblogs.com/maxupeng/archive/2011/06/22/2087579.html
http://java.chinaitlab.com/base/725356.html
http://blog.csdn.net/why0603_2000/article/details/7516431
分享到:
相关推荐
- Java代码强调良好的编码习惯,例如合理使用空格、缩进以及注释等。 - Java中标识符的命名规则包括不能使用Java关键字作为标识符名,首字母一般采用小写字母等。 通过上述总结可以看出,瑜琅的Java学习笔记覆盖了...
### Java课堂笔记学习 #### 软件定义与软件开发 - **软件**:软件是运行在硬件之上的一组指令集,这些指令集能够完成特定的功能。软件开发过程包括设计和编码两个主要阶段。 #### 编程语言的重要性 - **编程语言...
JAVA使用Unicode编码,每个字符占两个字节,可以用十六进制编码形式表示。 整数型可以分为byte、short、int、long四种,分别占1、2、4、8个字节。浮点型可以分为float和double两种,分别占4、8个字节。需要注意的是...
JAVA学习笔记涵盖了从开发环境配置到基础概念的深入讲解,主要知识点包括: 1. **JAVA开发环境**:Eclipse是一款广泛使用的JAVA集成开发环境(IDE),对于初学者来说,需要下载并配置它来编写和运行JAVA程序。配置...
在解读达内JAVA培训综合笔记内容之前,需要指出,本文档由于是通过OCR扫描形成的,其中的笔记内容可能会有少许错别字或识别误差。但我们可以忽略这些细节问题,重点在于理解笔记中的知识点。 一、Java技术基础 Java...
可以使用整数初始化字符,也可以使用`\u`格式的Unicode编码。 4. **布尔型** - **`boolean`**:只接受`true`和`false`两个值。在Java中,`false`通常与0等同,但不能互相转换。 #### 类型转换 - 在进行不同类型的...
Java入门笔记文档详细阐述了Java编程语言的基本概念、开发工具、编程基础、面向对象编程、多线程、集合框架、IO流、网络编程、安全加密、反射机制、新特性、内存管理等多个方面,为初学者提供了一条通往Java编程世界...
Java JDBC综合笔记详细介绍了使用Java语言通过JDBC操作数据库的基本方法和技巧,包括数据库的创建、表的操作、数据的增删改查、SQL语句的使用等。 在数据库的创建方面,笔记中提到了如何创建数据库以及如何设置...
12. **软件工程实践**:遵循良好的编码规范,编写单元测试,使用Maven或Gradle进行项目构建,以及使用IDE如IntelliJ IDEA或Eclipse进行开发。 这款Java笔记本应用展示了Java在创建功能丰富的桌面应用程序方面的强大...
### Java学习笔记经典知识点解析 #### 一、面向对象编程基础 **面向对象**是一种重要的编程范式,它改变了传统的面向过程的编程思路,强调通过对象来组织代码,提高代码的复用性和维护性。 **面向对象的核心概念*...
在本压缩包“bjy学习笔记-阿里巴巴Java编码规范以及一些技术笔记”中,我们可以预见到包含的内容主要是关于Java编程语言的学习心得,特别是遵循阿里巴巴的Java编码规范的相关知识。这是一份宝贵的资源,对于Java...
Java作为一种典型的面向对象编程语言,提供了丰富的特性和工具来支持面向对象的设计和编码。 #### 对象的概念与特性 - **对象**:在面向对象编程中,“对象”被视为现实世界实体的抽象表示,具有状态(属性)和...
### Java个人笔记概览 这份文档作为个人学习Java过程中的笔记整理,对于初学者来说具有一定的参考价值。 ### Java简介 1. **Java是什么?** - Java是一种广泛使用的编程语言。 - 它不仅是一种语言,还是一个...
### Java学习笔记知识点详解 #### 一、Java环境配置与基本概念 - **系统变量path**: 在设置Java开发环境时,需要配置系统变量`path`,这样计算机才能找到执行Java命令所需的程序。例如,当我们输入`javac`或`java`...
很抱歉,但根据您提供的文件信息,它似乎包含了大量的非文本字符和无法识别的编码,这使得从中提取有意义的Java学习知识点变得不可能。通常,Java学习笔记可能涵盖类、对象、封装、继承、多态性、控制流、数据类型、...
浙江大学翁恺老师的Java视频课程深入浅出地讲解了这一主题,这些笔记旨在帮助我们回顾和巩固Java开发的关键知识。 1. 面向对象编程基础 - 类与对象:Java中的基本单元是类,它是具有属性(字段)和行为(方法)的...
在“java反射笔记”这个主题中,我们将深入探讨反射的基础知识和常见用法。 首先,我们需要了解什么是反射。在Java中,反射是指在运行时获取类的信息(如类名、方法名、参数类型等)并动态调用对象的方法或访问其...
Java对Unicode编码标准的支持,使得程序可以处理各种语言文本。char类型表示单个16位Unicode字符,Java中的字符常量使用单引号包围。 以上知识点涉及了Java编程语言的多个方面,包括基础语法、面向对象编程、集合...
这些库提供了API来调用底层的编码器,将PCM数据转换为目标格式。 5. **保存音频文件**:完成转换后,我们可以使用`FileOutputStream`将音频数据写入磁盘,形成指定格式的音频文件。注意,保存文件时需要遵循特定...