1、理解
byte是唯一实现,真实的存在
char,int,short,是各种语义抽象(人,计算机对byte的语义分析,借用编译原理的概念)
String,Java由char组成,但最终还是以Bytes形式存在
2、ASCII字符集编码
7位编码(最高位忽略无效),编码范围是0x00-0x7F。共128个字符(4位二进制==一位16进制)
0A LF (NL line feed, new line) 换行键
0D CR (carriage return) 回车键(运输返回)
30 0
41 A
61 a
<CR><LF>源自电传打字机Teletype,<CR>打字机把打印头定位在左边界, <LF>打字机把纸向下移一行。
Unix 每行结尾"\n", Windows每行结尾"\r\n",分歧。
3、Unicode(Universal code)
任何文字(char)在中都对应一个值(code point),代码值格式:U+ABCD
unicode 3.0: ISO/IEC 10646-1, support 49,259 chars, Basic Multilingual Plane(基本多文种平面)
Unicode 3.1:ISO/IEC 10646-2, support 94,205 chars, Supplementary Planes(定义的辅助平面)
UTF-8(1-4个字节)仅支持unicode3.0, 表示unicode3.0+,需要更多个字节?
中日韩编码范围:4E00-9FBF:CJK 统一表意符号 (CJK Unified Ideographs)
3.1、UCS(Universal Character Set)
文字(char)和代码点之间的对应关系(抽象),没有规定如何存储(实现)
UCS-2(UCS coded in 2 octets)代码值范围U+0000~U+FFFF
UCS-4(UCS coded in 4 octets)代码值范围U+00000000~U+7FFFFFFF
U+7FFFFFFF = 2^7(最高位为0,group) * 2^8(plane面) * 2^8(row) * 2^8(cell码元)
BMP(Basic Multilingual多语言 Plane): group0,plane0 , BMP前2个字节全0,后两个字节对应UCS-2
3.2、UTF(Unicode Transformation Format)
规定code point在计算机中如何存储
BOM: Byte Order Mark, 值:FEFF
3.3、UFT-8, 用8bit作为最小单元,没有字节序问题,但仍然可以有BOM: EFBBBF
变长(1-4字节),兼容ASCII
3.4、UTF-8映射unicode
Unicode编码(16进制) ║ UTF-8 字节流(二进制) 有效bit数
000000 - 00007F ║ 0xxxxxxx 7bit//ASCII字母继续使用1字节储存
000080 - 0007FF ║ 110xxxxx 10xxxxxx 11bits//希腊字母
000800 - 00FFFF ║ 1110xxxx 10xxxxxx 10xxxxxx 16bits//汉字等
010000 - 10FFFF ║ 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx 22bits//辅助平面字符
BOM: EFBBBF 推导
FEFF(11111110,11111111)
转换规则: 1110xxxx 10xxxxxx 10xxxxxx
EF,BB,BF(11101111, 10111011, 10111111)
3.5、UTF-16,用16bit作为最小单元,2个字节,必然有字节序问题
对 UCS-2 用2B直接保存。
对UCS-4 用4B直接保存
不兼容ASCII,固定长度,浪费资源,但速度快
UTF-16LE-BOM: FF FE (windows默认)
UTF-16BE-BOM: FE FF
3.6、UTF-32 对应UCS-4 用4B直接保存,固定长度,浪费资源
3.7、实例:"汉字a\r\n"(unicode: U+6C49,U+5B57,U+0061,U+000D,U+000A),windows7下对应的各种编码。
ASCII
BABAD7D6 610D0A
UTF-8(deflaut: 带BOM)
EFBBBF E6B189E5AD97 610D0A
UTF-16
FFFE 496C575B 61000D000A00
UTF-16-big edn
FEFF 6C495B57 0061000D000A
Unicode-ascii escaped
\uFEFF\u6C49\u5B57a
相关推荐
不同的字符编码标准对应着不同的字符集,今天,我们将探讨 UCS2、Unicode、UTF-8 和 GB2312 等通用字符编码标准。 ASCII 码 ASCII(American Standard Code for Information Interchange)是最早的字符编码标准,...
本文主要围绕四个重要的字符编码体系展开:ASCII、Unicode(UCS)、UTF-8以及GB2312,这些都是在软件网络技术中广泛使用的编码格式。 1. ASCII(American Standard Code for Information Interchange):ASCII是最...
ASCII码(American Standard Code for Information Interchange,美国信息交换标准代码)和UCS2(Unicode Character Set,Unicode的16位编码形式)都是广泛使用的字符编码系统。这篇文档将详细阐述这两种编码方式...
例如,对于ASCII和UNICODE(UCS-2/UTF-16)之间的转换,可以使用Windows API中的`MultiByteToWideChar`和`WideCharToMultiByte`函数。而在ASCII和UTF-8之间转换,可以使用`std::wstring_convert`和`std::codecvt_utf...
在Windows操作系统中,ASCII、Unicode和UTF-8是三种常见的字符编码格式,它们各自有着不同的特点和适用场景。本文将详细介绍这三种编码的原理、相互转换的方法以及在Windows环境下进行转换的操作步骤。 首先,让...
本文将深入探讨UTF8、ANSI、UTF7、UNICODE和UTF32这五种字符编码格式,并介绍如何在它们之间进行转换以及字节数组与字符串之间的互换。 1. UTF8(Unicode Transformation Format - 8 bit): UTF8是最常见的...
UNICODE和UTF-8是两种广泛使用的字符编码标准,它们各自有着独特的特性和应用场景。本文将深入探讨UNICODE与UTF-8之间的关系、区别以及如何进行相互转换。 **一、UNICODE简介** UNICODE,全称是“统一码”或“万国...
字符编码是计算机处理文本的基础,涉及多种编码标准,如GBK、UTF8以及UCS。GBK是中国大陆广泛使用的编码,它是GB2312的扩展,兼容ASCII,支持超过两万个汉字,适合处理简体中文。而UTF8是Unicode的一种实现方式,...
ASCII 和 UTF-8 是两种广泛使用的字符编码标准,它们在计算机科学中扮演着重要的角色,尤其是在文本处理和数据传输方面。这两个编码系统都是为了将人类可读的字符转化为计算机可以理解的形式,但它们的设计和使用...
UTF-8(Unicode Transformation Format 8)是一种 Unicode 编码形式,用于将 Unicode 字符转换为可读的 ASCII 码。以下是 UCS-2 转换为 UTF-8 代码集完整版的知识点: UCS-2 编码形式 UCS-2 是一种 Unicode 编码...
本文将深入探讨GB2312、UTF-8和UNICODE这三种常见的字符编码,并介绍如何进行编码转换。 1. GB2312编码:GB2312,全称为“汉字国标交换码”,是中国大陆于1980年制定的一套汉字编码标准。它主要用于简体中文,包含...
总结来说,Unicode和UCS为全球字符的统一编码提供了基础,UTF-8作为Unicode的一种实现,已经成为互联网上最常用的字符编码。Base64则在数据传输和存储中发挥着重要作用,而ANSI编码则在特定环境下处理西方语言的文本...
UTF-8(8位通用转换格式)是Unicode的一种变长字符编码。它使用1到4个字节编码一个Unicode字符,兼容ASCII,且对于英文等拉丁字母表文字占用较少的空间。对于中文汉字,UTF-8通常使用3个字节进行编码。 #### 五、...
Unicode 字符集是计算机上使用的一种字符编码,它为每种语言中的每个字符设定了统一并且唯一的二进制代码,以满足跨语言、跨平台进行文本转换、处理的要求。Unicode 编码系统可分为编码方式和实现方式两个层次。 一...
UCS2,即Unicode字符集的16位编码形式,属于Unicode标准的一部分。每个字符用两个字节来表示,理论上能表示65536个不同的字符。UCS2简洁明了,但无法涵盖Unicode的全部扩展,因此在处理包含大量辅助平面字符(如表情...
本文档主要介绍了几种常见的字符集和字符编码,包括ASCII、DBCS、GB2312、GBK、GB18030、BIG5以及UCS和Unicode。 1. ASCII字符集和编码: ASCII(美国信息交换标准代码)是最基础的字符编码,它包含了7位的字符编码...
字符集和字符编码 字符集是指计算机系统支持的所有抽象字符的集合,包括文字、符号、图形符号、数字等。字符编码是将字符转换为二进制数据的过程,反之,解码是将存储在计算机中的二进制数据解析显示出来。 1. ...
UTF-8(8-bit Unicode Transformation Format)是一种可变长度的字符编码,它使用1到4个字节来表示一个Unicode字符。这种编码方式的设计目的是为了兼容ASCII编码,因此对于ASCII字符集中的字符,UTF-8只需要使用一个...
### 关于JAVA字符编码:Unicode, ISO-8859-1, GBK, UTF-8 编码及相互转换 在Java开发过程中,字符编码是处理文本数据的基础,不同的编码方式会影响数据的存储、传输以及显示。本文将详细介绍几种常见的字符编码...