一句来自《三国》中的话——分久必合合久必分,各个字符集之间也存在的分久必合的现象。随着国际标准ISO10646规定的通用字符集(UCS,全称Universal Mutiple-Octet Doded Character Set)的发布,各种字符集之间不统一和谐的问题就得到了改观。
UTF编码,全称是Unicode Transformer Format,这种编码是UCS的实际形式,它的分类是按照其基本长度所占用的位数而定,分为UTF-8/16/32三种形式。UTF可以说是其他字符集的集合,它使得其它字符集是交叉兼容的,可以说,凡是将文字符号转为UCS后再转回原来的编码,也不会丢失信息。
UCS包含了现在所有的已知语言的字符,包含从拉丁文、希腊语到中文、韩文等象形文字,再到日文的平假名、片假名等众多语系 。因此使用UTF进行程序开发,绝对是程序国际化的首选,Unicode将世界的语言统一起来,构成了最伟大的字符集。
1.UTF-8字符集
UTF-8保证了字母与数字都是一个字节,其他的文字用不定长编码,最多占用6个字节,它支持31位编码。前64K的Unicode(UCS-2)编成UTF-8只需要3个字节。
UTF-8的最大优点:
能够与128位以下编码和单字节处理软件兼容
UTF-8的多字节编码没有字节错乱问题。例如删除半个汉字时(在某些软件如CuteFTP中)时不会导致其他文字乱码
2.UTF-16字符集
UTF-8是变长编码,每个Unicode代码点按照不同范围,可能会存在着1-3个不同的字节。
UTF-16是相对固定的编码,如果处理的内容在U200000范围内,每个Unicode代码点都是16位的,超出的话,就会使用2个UTF-16(也就是4个字节)。同时UTF-16还按照位的字节高地分为UTF-16BE和UTF-16LE。
3.UTF-32字符集
UTF-32字符集始终固定,没有UTF-8/16的定位问题,每个Unicode代码点都是用32位表示(也就是4个字节)。同样,它也按照 位的字节高地分为UTF-32BE和UTF-32LE。
结语:
UTF可以说是各种文字的大杂烩,这样让各种字符融会贯通,只要通过简单的定位,就可以实现对字符串的各项操作了(UTF-32不需要定位即可),但是UTF-32是UTF编码家族占用空间最大的,在开发时候不应忽略这一点。
分享到:
相关推荐
常见的Oracle字符集有AL32UTF8(支持Unicode的UTF-8编码)、WE8ISO8859P1(西欧字符集)、ZHS16GBK(简体中文GB18030编码)等。 六、多语言环境下的字符集配置 在处理多语言数据时,Oracle提供了NLSSORT参数来调整...
3. **Unicode字符集** - **AF16UTF16**:基于Unicode的16位编码,每个字符占用两个字节。 - **AL32UTF8**:基于Unicode的8位编码,可变长度,兼容性和扩展性极强。 #### 三、字符集兼容性与转换 Oracle数据库在...
相反,非Unicode字符串,如`VARCHAR`或`CHAR`,只支持特定的字符集,例如ASCII,不包含Unicode扩展的字符。 错误"0xc02020f6:数据流任务:列“column”无法在unicode和非unicode字符串数据类型之间转换"通常发生在...
国家字符集是为增强字符处理能力而设定的,主要用于NCHAR、NVARCHAR2和NCLOB类型数据,通常选择Unicode编码。 查询数据库的字符集设置可以通过查询NLS_DATABASE_PARAMETERS、NLS_INSTANCE_PARAMETERS或NLS_SESSION_...
国家字符集(NATIONAL CHARACTER SET)是用于NCHAR、NVARCHAR2、NCLOB等类型,通常选择Unicode编码,如AF16UTF16或UTF8,提供对亚洲语言的定长多字节编码支持。 在处理字符集问题时,需要注意字符集的兼容性,特别...
《ASCII与Unicode转换工具v2.3.3详解》 在计算机世界中,字符编码扮演着至关重要的角色,它使得计算机能理解和处理人类语言。ASCII和Unicode是两种广泛使用的字符编码标准,它们各自有着独特的特点和应用场景。...
这里的"win32"表示操作系统平台,"unicode"表明它支持多种语言字符集,"2.8.12.1"是wxPython的版本号,而"py27"则意味着它是为Python 2.7版本设计的。 **wxPython详解** wxPython是一个流行的Python绑定库,它允许...
在处理MySQL数据库时,字符集编码问题经常导致乱码现象,这不仅影响数据的正确读取,也对数据库管理和维护造成困扰。以下是对“mysql乱码解决方案”这一主题的深入探讨,旨在提供全面且权威的解决策略。 ### MySQL...
Notepad++ 5.7.1版本的Unicode支持使得它在处理不同字符集的文本时更加灵活,无论你是在编写中文、日文还是其他非拉丁语系的代码,都能得到良好的显示效果。此外,它的轻量级特性、丰富的插件系统以及强大的自定义...
-w:和-c 类似,只是当使用 Unicode 字符集拷贝数据时使用,且以 nchar 做为存储类型。 -t field_term:指定字符分割符,默认是"/t"。 -r row_term:指定行分割符,默认是"/n"。 -S server_name[/instance_name]...
在编程中,字符串的处理是常见的需求之一,尤其在涉及到不同字符集之间的转换时更是如此。Golang 作为一种现代编程语言,在处理这类问题上提供了丰富的支持。本文将详细介绍如何在 Golang 中将 Unicode 编码转换为...
此外,Character类还定义了两个内部类Subset和UnicodeBlock,用于处理Unicode字符集的不同部分。 此外,Object类是所有Java类的根类,它定义了对象的基本行为,如equals()、hashCode()和toString()。Class类则代表...
【标题】"wxPython2.8-win32-unicode" 是一个特定版本的 wxPython 库,专为在Windows 32位系统上运行的Python 2.7环境设计,支持Unicode字符集。 【描述】"wxPython2.8-win32-unicode" 提供了一套用于构建图形用户...
"unicode" 在文件名中表示该版本的 wxPython 支持 Unicode 字符集,这意味着它可以处理世界上几乎所有的字符,这对于国际化和多语言应用程序尤其重要。 3. **安装与集成** 安装 wxPython 非常简单,只需要运行...
3. **Unicode字符集**:Unicode是一种国际标准,它包含了几乎世界上所有的字符,包括字母、数字和符号。在Java中,char类型用16位表示,能表示65536个不同的Unicode字符。 4. **键盘输入**:实验中使用了`Scanner`...
* -w:和-c 类似,只是当使用 Unicode 字符集拷贝数据时使用,且以 nchar 做为存储类型。 * -t field_term:指定字符分割符,默认是"\t"。 * -r row_term:指定行分割符,默认是"\n"。 * -S server_name[\instance_...
- **Unicode 字符集**:支持多种语言,每个字符占用两个字节,可以表示更多的字符集。 - **宏定义**:`#ifdef UNICODE` 和 `#else` 用于区分 ANSI 和 Unicode 字符集的函数调用。`#define MessageBox MessageBoxW` ...
在EXP/IMP过程中我们需要注意四个字符集的参数:导出端的客户端字符集,导出端数据库字符集,导入端的客户端字符集,导入端数据库字符集。 我们首先需要查看这四个字符集参数。 查看数据库的字符集的信息: SQL> ...