关于字符集一直搞得不是很清楚,下面整理一些从网上查到的内容:
在所有字符集中,最知名可能要数被称为ASCII的7位字符集了。它是美国信息交换标准委员会
(American Standards Committee for Information Interchange)的缩写, 为美国英语通信所
设计。它由128个字符组成,包括大小写字母、数字0-9、标点符号、非打印字符(换行符、制表
符等4个)以及控制字符(退格、响铃等)组成。
另一种8位字符集是ISO 8859-1 Latin 1,也简称为ISO Latin-1。它把位于128-255之间的字
符用于拉丁字母表中特殊语言字符的编码,也因此而得名。
把汉语、日语和越南语的一些相似的字符结合起来,在不同的语言里,使不同的字符代表不同
的字,这样只用2个字节就可以编码地球上几乎所有地区的文字。因此,创建了UNICODE编码。它通
过增加一个高字节对ISO Latin-1字符集进行扩展,当这些高字节位为0时,低字节就是ISO Latin-1
字符。UNICODE支持欧洲、非洲、中东、亚洲(包括统一标准的东亚像形汉字和韩国像形文字)。
事实证明,对可以用ASCII表示的字符使用UNICODE并不高效,因为UNICODE比ASCII占用大一倍的
空间,而对ASCII来说高字节的0对他毫无用处。为了解决这个问题,就出现了一些中间格式的字符集,
他们被称为通用转换格式,既UTF(Universal Transformation Format)。目前存在的UTF格式有:
UTF-7, UTF-7.5, UTF-8, UTF-16, 以及 UTF-32。
big endian和little endian是CPU处理多字节数的不同方式。例如“汉”字的Unicode编码是6C49。
那么写到文件里时,究竟是将6C写在前面,还是将49写在前面?如果将6C写在前面,就是big endian。
还是将49写在前面,就是little endian。
GB2312(1980年)一共收录了7445个字符,包括6763个汉字和682个其它符号。汉字区的内码范围高字
节从B0-F7,低字节从A1-FE,占用的码位是((15*16 + 7) - (11*16 + 0) + 1) * (15*16 + 14 ) -(10*16 + 1) + 1) =
72*94=6768。其中有5个空位是D7FA-D7FE。
GB2312支持的汉字太少。1995年的汉字扩展规范GBK1.0收录了21886个符号,它分为汉字区和图形符号区。
汉字区包括21003个字符。2000年的GB18030是取代GBK1.0的正式国家标准。该标准收录了27484个汉字,同时
还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。现在的PC平台必须支持GB18030,对嵌入式产品暂不
作要求。所以手机、MP3一般只支持GB2312。
从ASCII、GB2312、GBK到GB18030,这些编码方法是向下兼容的,即同一个字符在这些方案中总是有相同
的编码,后面的标准支持更多的字符。在这些编码中,英文和中文可以统一地处理。区分中文编码的方法是高
字节的最高位不为0。按照程序员的称呼,GB2312、GBK到GB18030都属于双字节字符集 (DBCS)。
前面提到从ASCII、GB2312、GBK到GB18030的编码方法是向下兼容的。而Unicode只与ASCII兼容(更准确
地说,是与ISO-8859-1兼容),与GB码不兼容。例如“汉”字的Unicode编码是6C49,而GB码是BABA。
Unicode也是一种字符编码方法,不过它是由国际组织设计,可以容纳全世界所有语言文字的编码方案。
Unicode的学名是"Universal Multiple-Octet Coded Character Set",简称为UCS。UCS可以看作是"Unicode
Character Set"的缩写。
UCS规定了怎么用多个字节表示各种文字。怎样传输这些编码,是由UTF(UCS Transformation Format)
规范规定的,常见的UTF规范包括UTF-8、UTF-7、UTF-16。
UCS有两种格式:UCS-2和UCS-4。顾名思义,UCS-2就是用两个字节编码,UCS-4就是用4个字节(实际上
只用了31位,最高位必须为0)编码。
分享到:
相关推荐
### Java字符编码错误整理大全 #### 一、概述 在Java开发过程中,字符编码问题是非常常见且容易引发一系列乱码问题的重要因素。本篇将详细梳理Java中的字符编码相关知识点,帮助开发者解决实际工作中遇到的各种...
Informatica 字符集整理是指在使用 Informatica PowerCenter 工具对数据进行抽取转换时,对字符集编码格式进行详细的说明,并通过一些实例来详解字符集的问题。 Informatica 字符集整理理论基础从数据通路的角度看,...
Java字符编码是编程中至关重要的一个概念,尤其是在处理多语言数据时。本文主要探讨了Java中与字符编码相关的基础知识,包括ISO8859-1、GB2312、GBK、Unicode以及UTF编码。 首先,ISO8859-1是一种早期的单字节编码...
在数据库管理和Web开发中,字符编码和排序规则(也称为整理)是至关重要的概念,尤其是对于处理多种语言数据的系统。PHPMyAdmin是一个流行的开源工具,用于管理MySQL或MariaDB数据库,其中涉及到的字符集和整理设置...
字符编码在信息技术领域中起着至关重要的作用,它定义了如何将数字转化为人类可读的文本。本主题主要关注如何将不同编码格式的文件批量转化为UTF8编码,以确保跨平台和多语言环境下的兼容性。 标题“字符编码批量...
信息交换用汉字编码字符集 信息交换用汉字编码字符集是中国国家标准总局发布的一套国家标准,标准号是 GB 2312—1980。这个标准收录了6763个汉字和682个非汉字图形字符,适用于汉字处理、汉字通信等系统之间的信息...
本文将详细讲解如何在MyEclipse中进行字符编码设置、外部编辑器的配置以及Tomcat服务器的配置。 首先,字符编码的统一对于避免乱码问题至关重要。在MyEclipse中,你可以通过以下步骤将项目的字符编码设置为UTF-8: ...
在 `phpMyAdmin` 中,字符集的选择直接影响到数据库、表以及字段中的文本数据的编码方式。下面我们将深入探讨这些字符集及其用途。 1. **ASCII**:`ascii` 和 `ascii_bin` 分别代表美国标准信息交换代码(ASCII)的...
万能编码转换器,支持十几种类型的字符编码转换;日期转换、时间戳转换、IP地址转换;格式整理;字数统计等功能,绿色小巧,功能强大。
1.示例是CSDN博文的附带产物 2.文章有大量参考网络资料,已经都在开头给出链接. 3.是个人对字符编码的理解和整理 @author dailc @csdn http://blog.csdn.net/u010979495/article/details/50601511
Java字符编码原理是Java开发中不可或缺的基础知识,尤其是在处理涉及多语言环境的系统时,对字符编码的理解至关重要。本文将深入探讨Java中的字符编码过程,帮助开发者解决常见的乱码问题。 首先,Java源代码文件...
URL编码主要是为了将URL中的特殊字符转换成网络协议能理解的形式,而字符编码则涉及到文本在不同系统间的正确显示和传输。 URL编码,也称为百分号编码,是为了处理URL中那些可能引起混淆或有特殊含义的字符。这些...
通过这份按照GBK编码字库编号整理的国家标准通用字表,我们不仅能够了解到GB2312扩展后的字符集规模和特性,还能够深刻理解字符编码在现代信息技术中的重要地位。对于开发者而言,掌握这一知识不仅可以提升工作效率...
Python 2 和 3 在字符编码上的主要差异在于它们处理字符串和编码的方式。在 Python 2 中,字符串(str)可以是 ASCII 或其他指定编码的字节序列,而 Unicode 字符串(u-str)用于表示 Unicode 数据。而在 Python 3 ...
《字符工具V1.6:深入理解字符编码与校验机制》 在信息化时代,字符编码与数据校验是处理文本信息时不可或缺的部分。字符工具V1.6是一款集成了UTF-8、unicode(UCS-2/UTF-16)和GBK字符格式互相转换功能的实用软件...
2. **整理字符串中的字符**: - 函数`tidy_string(char ch[])`的作用是接收一个字符数组`ch`,统计每个字符出现的次数,并创建相应的哈弗曼树节点。 - 遍历字符串,为每一个不同的字符创建一个`Huffmantree`类型的...
标题中的“字符转换示例程序”表明这是一个关于字符编码或者字符串处理的编程示例,它可能涉及了将一种字符格式转换为另一种字符格式的过程。在IT领域,字符转换是常见的需求,例如在处理多语言文本时,需要进行UTF-...
而字符流主要处理字符编码的数据,如文本文件。在实际编程中,根据数据类型选择合适的流类型,并注意资源的关闭,以避免内存泄漏。同时,转换流的使用能让我们在字节流和字符流之间灵活转换,解决编码问题。