`
hongjn
  • 浏览: 56069 次
  • 性别: Icon_minigender_1
  • 来自: 火星
社区版块
存档分类
最新评论

java 字符编码深入理解(续)

 
阅读更多

在看完Java核心技术第八版第46页3.6.5章节,对代码单元和代码点再做一次总结。关于这俩概念的研究至此就算完成了。

有关代码单元和代码点的理解:
  1. Char: 在java中是采用UTF-16编码的,也就是说,Char是代表一个字符单元。
  2. 代码单元:UTF-8中是用8个字节表示的,UTF-16中使用16个字节表示的等等。Java中采用的是UTF-16编码!
  3. 代码点:对应各种真正字符(char不是真正的字符,是代码单元)的Unicode编码。
  4. 一个代码点可能对应一对代码单元,如辅助字符。

因为以上原因,在Java中,不赞成使用Char类型,因为它并不能代表一个真正的字符,而只是代码单元,而操作中,我们往往想得到的是真正的字符,而不是代码单元char。

当然,一般我们很少遇到辅助字符(由两个代码单元组成),但还是有必要了解一下。

具体操作及区别:

String test = "Hello";

长度:test.Length();   //返回代码单元的数量

         test.codePointCount(0,test.Length()); //0-length单元之间,返回代码点的数量

 

字符

    test.charAt(i);  //返回第i个代码单元

 

int index = test.offByCodePoint(0,i); //返回第i个代码点的专用索引

test.codePointAt(index);             //返回第i个代码点

 

遍历字符串真正字符:

int cp = test.codePointAt(i);

if(Character.isSupplementaryCodePoint(cp)) i += 2;  //判断是否是辅助字符

else i++;

最后,Java中除了不推荐使用char类型,也不推荐使用字符串的charAt方法!

1
1
分享到:
评论

相关推荐

    Java字符集编码简记

    本文将围绕“Java字符集编码简记”这一主题,深入探讨相关知识点,并结合标签“源码”和“工具”,探讨在实际开发中如何运用和处理字符编码问题。 首先,我们需要理解字符集的概念。字符集是一系列符号的集合,例如...

    java_字符编码 Javajava_字符编码问题

    在深入探讨 Java 字符编码的问题之前,我们先来了解一下字符编码的基本概念。字符编码是计算机内部表示字符的一种方式,它涉及到如何将人类可读的文字转换为二进制形式以便计算机处理。 #### 二、Java中的字符串与...

    Java字符集和编码

    因此,深入理解Java中的字符集和编码对于解决这些问题至关重要。 #### 二、基础知识 ##### 1. ASCII编码 ASCII编码(American Standard Code for Information Interchange,美国标准信息交换码)是由美国国家标准...

    JAVA 转换字符编码工具

    本篇将围绕"JAVA 转换字符编码工具"这个主题,深入探讨字符编码的概念、Java中的字符编码API以及`ReadFile.java`这个可能的源码文件如何处理字符编码。 首先,我们需要理解字符编码的基本概念。常见的字符编码有...

    JAVA_字符编码

    本教程将深入探讨Java中的字符编码,以及它们在实际开发中的应用。 首先,我们需要理解什么是字符编码。字符编码是将字符与数字(通常为整数)关联起来的方式,使得计算机可以识别和处理这些字符。在Java中,字符由...

    java字符串的各种编码转换

    尤其是在处理国际化应用时,理解并掌握各种字符编码格式变得尤为重要。下面将介绍几种常见的字符编码格式以及如何在Java中实现它们之间的转换。 #### 1. US-ASCII (美国标准信息交换码) - **定义**:US-ASCII是一...

    java字符编码问题

    ### Java字符编码问题详解 #### 一、引言 在Java开发过程中,字符编码问题是一个常见且容易引发各种隐藏问题的领域。不正确的字符编码处理可能...希望本文能帮助读者更好地理解Java字符编码的相关概念和技术细节。

    Java字符编码及获取文件编码

    本篇文章将深入探讨Java中的字符编码以及如何获取文件的编码。 首先,我们了解基本的字符编码体系,如ASCII、ISO-8859-1和Unicode。ASCII是最基础的7位编码,可表示128个不同的字符,主要针对英语字符。ISO-8859-1...

    java字符集编码问题

    ### Java字符集编码问题详解 #### 一、引言 在Java编程中,字符集编码问题是一个常见且重要的议题。由于不同的系统、平台以及网络环境中可能存在多种字符编码格式,这导致了在处理文本数据时可能会遇到编码不一致...

    java字符编码解析.zip

    Java字符编码解析是一个重要的主题,尤其对于移动开发,如Android平台,因为良好的字符处理能力是构建国际化应用的基础。本文将深入探讨Java中的字符编码概念、常见的编码格式、以及如何在Java程序中正确处理字符...

    Java字符编码知识简介[参考].pdf

    学习更多关于Java字符编码的知识,可以查阅相关的书籍、技术文档和在线资源,以深入理解字符编码的工作原理以及如何在Java中正确处理它们。 了解和掌握字符编码对于编写健壮的、跨平台的Java应用至关重要。在实际...

    字符编码过滤器 字符编码转换 post字符转换

    本文将深入探讨"字符编码过滤器"、"J2EE字符编码"、"字符编码转换"以及"POST字符转换"这些关键知识点,并结合提供的文件"encoding-filter.jar"和"使用方法.txt"来解释它们的应用。 首先,字符编码是计算机存储和...

    JAVA及相关字符集编码问题

    在深入探讨JAVA与字符集编码问题之前,我们首先需要理解不同字符集编码的基本概念以及它们在JAVA环境中的应用。字符集编码是计算机系统中表示文字的一种方式,它决定了如何将字符转换为二进制数据,以便于存储和传输...

    JAVA里字符编码的探索与理解.txt

    ### JAVA里字符编码的探索与理解 #### 一、引言 在计算机科学领域,字符编码是将人类可读的文本转换...通过本篇文章的学习,希望读者能够更加深入地理解JAVA中的字符编码机制,并能够在实际开发中灵活运用这些知识。

    深入分析 Java 中的中文编码问题

    本文将深入探讨Java中的中文编码问题,以及如何有效地解决这些问题。 首先,我们要了解字符编码的基本概念。字符编码是用来表示文本的规则,比如ASCII、GB2312、GBK、UTF-8等。在中文环境下,最常用的是GBK和UTF-8...

    深入理解字符编码

    ### 深入理解字符编码 #### 编码常识 **字符集与字符编码** - **定义**: 字符集(Charset)是指一组抽象字符的集合,涵盖了文字、符号等多种元素。例如,英文字符集包含了英文字母、数字及常用符号等。 - **作用*...

    java字符串编码获取

    要获取Java字符串的字节序列(即编码),可以使用`getBytes()`方法。此方法默认使用平台的默认编码,通常为UTF-8,但也可以指定其他编码,如`getBytes("GBK")`。如果需要确定字符串的原始编码,需要额外的信息,...

    java 写的字符编码转换工具(附带源码)

    Java字符编码转换工具是编程中常见的一种实用程序,主要用于处理不同字符编码间的转换问题。在计算机世界里,字符编码是用来表示文本的各种方式,常见的有ASCII、GBK、UTF-8等。不同的编码方式适用于不同的场景,...

Global site tag (gtag.js) - Google Analytics