`

字符集和字符编码

    博客分类:
  • java
阅读更多

0. 字符

:大家平时看到的符号,用来组成某种句子、语言

如 A B 张三

 

1. 字符集

每一种语言都有一个字符集,如英语有26个字符.....

 

2. 编码字符集(数字的集合)

:一个编码字符集是一个字符集的的编码形式,即为每个字符分配一个唯一的数字

如 ASCII :分配128个字符

     扩展ASCII:分配256个字符

    Unicode:包括了全人类字符,全人类字符的编码是Unicdoe的一个子集

ASCII和扩展的ASCII、Unicode都是一种表示字符集的编码方式,(假设)如字符a 对应0101010.....

每个字符都有对应的唯一2进制

(字符集越大,需要的字节数就越多)

 

3. 代码

代码点:代码点就是数字的集合

编码字符集合:是有效的代码点集合,已经用于表示字符的数字

如:Unicode的编码字符集合是:U+0000 -- U+10FFFF

      而这个编码字符集合可以看成是属于 0---2的32次方-1  代码点范围的集合的

 

总结:

字符---字符集--map number--编码字符集---utf-8 utf-9-...---字符编码后的数据

 

4. 字符编码方案( 如utf-8 utf-16 utf-32 )

注意:

     一般我们说的Unicode实际是:UTF-16字符编码的Unicode

 

以Unicode( 是编码字符集 )为例

 

由于字符 a b c d等只需1个字节就可以保存,但Unicode为容纳所有的语言的字符集,统一使用32位来表示每个字符

这样在网络传输时 对只需1个字节表示的字符,造成了浪费

 

Unicode支持以下3种字符编码:

 

1. UTF-8 :这是HTML和协议常用的,这里把Unicode字符转换成一种长度可变的字节编码。与ASCII集对应的Unicode字符,采用8位来表示,并且转变成UTF-8的Unicode字符可以再许多现有的软件找使用,如大多数浏览器支持UTF-8字符编码

 

2. UTF-16 :把较为常用的字符采用16位的代码单元表示,其它的用32位

 

3.UTF-32 :采用32位来表示每个字符,不是很好的选择。

 

(具体看文档或百度)

 

或者这篇文章:

http://www.doc88.com/p-99650883920.html

 

 

               String s = "\u03C0w\uD835\uDD6B\uD835\uDD6B";
		System.out.println(s.length());
		
		int codePointCount = s.codePointCount(0,s.length());
		System.out.println(codePointCount);
		
		int index = 0;
		int cp = 0;
		
		for(int i =0;i<s.length();i++)
			System.out.println((int)s.charAt(i));
		System.out.println("-----");
		
		for(int i =0;i<codePointCount;){
			index = s.offsetByCodePoints(0, i);
			System.out.println("index= "+index);
			cp = s.codePointAt(index);
			if(Character.isSupplementaryCodePoint(cp)){
				System.out.println(cp+" i ="+i);
				i++;
			}
			else
				i++;
		}

 

分享到:
评论

相关推荐

    字符集和字符编码详解

    字符集和字符编码是计算机处理文字的基础,它们决定了如何在二进制的世界中表示和传输人类语言。本文将深入探讨这两个概念,以及相关的知识点。 首先,我们要理解什么是字符集。字符集,顾名思义,就是一个集合,...

    字符集和字符编码相关知识文档

    字符集和字符编码是计算机处理文本的基础,它们决定了如何将人类使用的文字和符号转换成计算机可以理解的形式。本文档主要介绍了几种常见的字符集和字符编码,包括ASCII、DBCS、GB2312、GBK、GB18030、BIG5以及UCS和...

    字符编码和字符集研究

    字符编码和字符集是计算机处理文字和符号的基础。字符集是指一组特定的字符集合,它包含文字、符号、数字等元素。例如,英文字符集包含了所有的英文字母和符号,而汉字字符集则包含了所有汉字。字符集可以是某个语言...

    常用字符集及字符编码简介

    在信息技术领域,理解和掌握字符集与字符编码至关重要,因为它们直接影响到数据的存储、传输和显示。以下是对这些概念的详细介绍: 1. **字符集(Character Set)** 字符集是一个集合,包含了所有可能的字符,比如...

    Java字符集和编码

    这种编码方式的优点在于它保留了ASCII码的特性,即对于ASCII码内的字符,UTF-8编码与ASCII码完全一致,这大大简化了编码和解码的过程。 #### 三、Java中的字符集和编码 在Java中,字符是以16位Unicode编码表示的,...

    字符集与字符集编码简介

    字符集与字符集编码简介 我们知道,计算机只能识别诸如0101这样的...这就涉及到字符编码的概念了,比如一个字符集有8个字符,那么用3个二进制位就可以完全表示该字符集的所有字符,也即每个字符用3个二进制位进行编码。

    GB 18030-2005 信息技术 中文编码字符集

    它在前两个标准的基础上进行了扩展和完善,不仅覆盖了GB 2312和GBK中的所有汉字,还增加了大量的CJK(中日韩)统一汉字、少数民族文字以及符号等,总收录的字符数量超过7万个,极大地丰富了中文字符集的容量。...

    Mysql字符集编码详解

    Mysql字符集编码详解 Mysql数据库中的字符集编码问题是许多开发者经常遇到的一个问题,特别是在JAVA项目中。解决这个问题需要从多方面入手,包括服务器、数据库、数据表和连接等四个层次。这篇文章将详细介绍如何...

    字符集和编码

    字符集和编码, 原来是这样

    深入理解字符编码(字符集 字符编码 字符显示 乱码问题)

    文档中主要介绍了各类字符集以及相关的字符编码,字符的显示原理,从输入到显现的整个过程,程序中出现的乱码问题以及解决方案

    字符集编码查询/反查工具

    在字符编码查询中,通常会将字符转换为二进制或十六进制进行展示和比较,因为它们更紧凑,更容易进行计算。 Base64是一种用于将二进制数据编码为ASCII字符串的方法,常用于在电子邮件等文本环境中传输非ASCII字符...

    gb18030中文编码字符集

    GB18030-2005 信息技术 中文编码字符集,单双四字节所有字符,包含简繁生僻字。

    qt实现转换文件字符集编码

    在Qt中,`QTextCodec`类是进行字符编码转换的核心工具。它可以创建并管理各种编码的解码器和编码器。例如,如果我们要将一个GBK编码的文件转换为UTF-8,我们可以这样做: ```cpp #include #include #include #...

    维吾尔文字符集unicode编码表

    ### 维吾尔文字符集Unicode编码表 #### 概述 本文档提供了一份详细的现代维吾尔文字符集的Unicode编码表。这份表格对于理解、处理和展示维吾尔语文字具有重要意义。通过这份表格,我们可以清晰地看到每一个维吾尔文...

    oracle字符集的查看和client字符集的修改

    - **兼容性**:在跨平台和跨系统的环境中,统一字符集有助于解决由于编码差异导致的问题。 #### 六、常见问题及解决方案 1. **修改客户端字符集后仍出现乱码**: - 检查服务器端和客户端的字符集设置是否一致。 ...

    GB 2312-1980 信息交换用汉字编码字符集 基本集.rar

    ### GB 2312-1980 信息交换用汉字编码字符集 基本集 #### 一、GB 2312-1980简介 GB 2312-1980是中华人民共和国国家技术监督局于1980年发布的信息交换用汉字编码字符集的基本集,它是中国最早的一套国家标准汉字...

Global site tag (gtag.js) - Google Analytics