`

ANSI和Unicode中的汉字编码 (转)

    博客分类:
  • JAVA
阅读更多

ANSI:汉字区的内码范围高字节从B0-F7,低字节从A1-FE
Unicode:汉字的Unicode编码范围为\u4E00-\u9FA5 \uF900-\uFA2D,如果不在这个范围内就不是汉字了.

GBK 亦采用双字节表示,总体编码范围为 8140-FEFE,首字节在 81-FE 之间,尾字节在 40-FE 之间,剔除 xx7F 一条线。总计 23940 个码位,共收入 21886 个汉字和图形符号,其中汉字(包括部首和构件)21003 个,图形符号 883 个。

Unicode 汉字内码的汉字区为4E00-9FA5, 共有20902个汉字

BIG5 是台湾计算机界实行的汉字编码字符集。它包含了 420 个图形符号和 13070 个汉字(不包含简化汉字)。编码范围是 0x8140-0xFE7E、0x81A1-0xFEFE,其中 0xA140-0xA17E、0xA1A1-0xA1FE 是图形符号区,0xA440-0xF97E、0xA4A1-0xF9FE 是汉字区。

 

概况

1993年,Unicode 1.1版本推出,收录了中国大陆、台湾、日本及韩国通用字符集的汉字,总共有20,902个。

中国大陆订定了等同于Unicode 1.1版本的“GB 13000.1-93”“信息技术 通用多八位编码字符集(UCS) 第一部分:体系结构与基本多文种平面”。

由于GB 2312-80只收录了6763个汉字,有不少汉字,如部分在GB 2312-80推出以后才简化的汉字(如“啰”),部分人名用字(如中国前总理朱镕基的“镕”字),台湾及香港使用的繁体字,日语及朝鲜语汉字等,并未有 收录在内。中文电脑开发商,于是利用了GB 2312-80未有使用的编码空间,收录了所有出现在Unicode 1.1及GB 13000.1-93之中的汉字,制定了GBK编码。

根据西方资料,GBK最初是由微软对GB2312的扩展,也就是CP936字码表 (Code Page 936)的扩展(原来的CP936和GB 2312-80一模一样),最初出现于Windows 95简体中文版中,由于Windows产品的流行和在大陆广泛被使用,中华人民共和国国家有关部门将其作为技术规范。注意GBK并非国家正式标准,只是国 家技术监督局标准化司、电子工业部科技与质量监督司发布的“技术规范指导性文件”。虽然GBK收录了所有Unicode 1.1及GB 13000.1-93之中的汉字,但是编码方式与Unicode 1.1及GB 13000.1-93不同。仅仅是GB 2312到GB 13000.1-93之间的过渡方案。

中华人民共和国国家标准总局于2000年推出了GB 18030-2000标准,以取代GBK。GB 18030-2000除了保留了全部GBK编码的汉字外,还增加了大约一百个汉字及四位元组编码空间。

 

 

unicode码的分布情况

*******************************************************
0000..007F;   Basic   Latin
0080..00FF;   Latin-1   Supplement
0100..017F;   Latin   Extended-A
0180..024F;   Latin   Extended-B
0250..02AF;   IPA   Extensions
02B0..02FF;   Spacing   Modifier   Letters
0300..036F;   Combining   Diacritical   Marks
0370..03FF;   Greek
0400..04FF;   Cyrillic
0530..058F;   Armenian
0590..05FF;   Hebrew
0600..06FF;   Arabic
0700..074F;   Syriac    
0780..07BF;   Thaana
0900..097F;   Devanagari
0980..09FF;   Bengali
0A00..0A7F;   Gurmukhi
0A80..0AFF;   Gujarati
0B00..0B7F;   Oriya
0B80..0BFF;   Tamil
0C00..0C7F;   Telugu
0C80..0CFF;   Kannada
0D00..0D7F;   Malayalam
0D80..0DFF;   Sinhala
0E00..0E7F;   Thai
0E80..0EFF;   Lao
0F00..0FFF;   Tibetan
1000..109F;   Myanmar  
10A0..10FF;   Georgian
1100..11FF;   Hangul   Jamo
1200..137F;   Ethiopic
13A0..13FF;   Cherokee
1400..167F;   Unified   Canadian   Aboriginal   Syllabics
1680..169F;   Ogham
16A0..16FF;   Runic
1780..17FF;   Khmer
1800..18AF;   Mongolian
1E00..1EFF;   Latin   Extended   Additional
1F00..1FFF;   Greek   Extended
2000..206F;   General   Punctuation
2070..209F;   Superscripts   and   Subscripts
20A0..20CF;   Currency   Symbols
20D0..20FF;   Combining   Marks   for   Symbols
2100..214F;   Letterlike   Symbols
2150..218F;   Number   Forms
2190..21FF;   Arrows
2200..22FF;   Mathematical   Operators
2300..23FF;   Miscellaneous   Technical
2400..243F;   Control   Pictures
2440..245F;   Optical   Character   Recognition
2460..24FF;   Enclosed   Alphanumerics
2500..257F;   Box   Drawing
2580..259F;   Block   Elements
25A0..25FF;   Geometric   Shapes
2600..26FF;   Miscellaneous   Symbols
2700..27BF;   Dingbats
2800..28FF;   Braille   Patterns
2E80..2EFF;   CJK   Radicals   Supplement
2F00..2FDF;   Kangxi   Radicals
2FF0..2FFF;   Ideographic   Description   Characters
3000..303F;   CJK   Symbols   and   Punctuation
3040..309F;   Hiragana
30A0..30FF;   Katakana
3100..312F;   Bopomofo
3130..318F;   Hangul   Compatibility   Jamo
3190..319F;   Kanbun
31A0..31BF;   Bopomofo   Extended
3200..32FF;   Enclosed   CJK   Letters   and   Months
3300..33FF;   CJK   Compatibility
3400..4DB5;   CJK   Unified   Ideographs   Extension   A
4E00..9FFF;   CJK   Unified   Ideographs
A000..A48F;   Yi   Syllables
A490..A4CF;   Yi   Radicals
AC00..D7A3;   Hangul   Syllables
D800..DB7F;   High   Surrogates
DB80..DBFF;   High   Private   Use   Surrogates
DC00..DFFF;   Low   Surrogates
E000..F8FF;   Private   Use
F900..FAFF;   CJK   Compatibility   Ideographs
FB00..FB4F;   Alphabetic   Presentation   Forms
FB50..FDFF;   Arabic   Presentation   Forms-A
FE20..FE2F;   Combining   Half   Marks
FE30..FE4F;   CJK   Compatibility   Forms
FE50..FE6F;   Small   Form   Variants
FE70..FEFE;   Arabic   Presentation   Forms-B
FEFF..FEFF;   Specials
FF00..FFEF;   Halfwidth   and   Fullwidth   Forms
FFF0..FFFD;   Specials
10300..1032F;   Old   Italic
10330..1034F;   Gothic
10400..1044F;   Deseret
1D000..1D0FF;   Byzantine   Musical   Symbols
1D100..1D1FF;   Musical   Symbols
1D400..1D7FF;   Mathematical   Alphanumeric   Symbols
20000..2A6D6;   CJK   Unified   Ideographs   Extension   B
2F800..2FA1F;   CJK   Compatibility   Ideographs   Supplement
E0000..E007F;   Tags
F0000..FFFFD;   Private   Use
100000..10FFFD;   Private   Use

分享到:
评论
1 楼 Stark_Summer 2015-08-09  
赞  就是感觉过于概念了。还是不能很明白

相关推荐

    Ansi转Unicode软件

    总之,"Ansi转Unicode软件"是为了确保文本文件在全球范围内的兼容性和正确性而设计的工具,通过使用它可以避免因编码不一致导致的乱码问题。在Windows环境中,利用这样的工具可以方便地管理和共享包含多种语言的文本...

    C语言UTF8到ANSI和Unicode转换代码

    本文将深入探讨C语言中UTF8、ANSI和Unicode字符集之间的转换方法,以及如何在MFC(Microsoft Foundation Classes)项目中集成这些转换代码。 首先,我们要了解UTF8、ANSI和Unicode的概念。UTF8是一种变长的Unicode...

    ANSI 和Unicode相互转换的类

    ASCII编码使用7位来表示128个最基本的西欧字符,而GBK等扩展的ANSI编码则包含了更多的汉字和其他非英文字符。然而,ANSI并不全球化,对于处理多种语言的文本可能会出现乱码问题。 **Unicode**:Unicode是一个国际...

    delphi2009 Unicode转汉字,汉字转Unicode源码

    在Delphi 2009及之后的版本中,由于引入了Unicode支持,处理字符串时经常需要进行Unicode和汉字之间的...理解Unicode和各种汉字编码之间的关系以及如何进行转换,对于编写能够正确处理多语言文本的Delphi程序至关重要。

    字符串十六进制转换工具(包含ANSI和UNICODE)

    本工具专注于ANSI和UNICODE字符串与十六进制之间的转换,这涉及到字符编码和二进制数据的理解。 首先,我们要理解ANSI和UNICODE的概念。ANSI字符串通常指的是基于特定地区或语言的ASCII编码,它使用7位或8位来表示...

    Ansi、Unicode、UTF8字符串之间的转换,wprintf

    在 Windows 操作系统中,常见的字符串编码方式有三种:Ansi、Unicode 和 UTF8。今天我们将详细介绍这三种编码方式之间的转换,包括 Ansi 转 Unicode、Unicode 转 Ansi,以及使用 wprintf 函数进行字符串输出。 Ansi...

    ANSI2Unicode_1.0.3

    通过这个工具,他们能够轻松地将存储在ANSI编码中的数据转换为Unicode,使得数据在各种环境下的兼容性和可读性得到提升。 总之,"ANSI2Unicode_1.0.3"是一个实用的工具,它在理解和处理字符编码问题时起着关键作用...

    文本转码 ansi转unicode

    - **字符丢失**:如果ANSI编码中的某些字符在Unicode中没有对应的表示,转码时可能会丢失或替换为替代字符。 - **编码识别**:正确识别源文本的ANSI编码至关重要,否则可能会导致乱码。在处理未知编码的文本时,可能...

    unicode 转ansi格式

    在编程领域,Unicode 和 ANSI 是两种不同的字符编码标准,它们被用来表示文本数据。Unicode 是一个广泛采用的国际标准,可以表示世界上几乎所有的字符,包括各种语言的文字。而 ANSI 编码,通常指的是 Windows 系统...

    汉字内码查询器,包括unicode和Ansi码

    在Unicode编码中,每个汉字都有一个固定的、全球唯一的数字标识,通常以“U+”开头,如“你好”的汉字“你”对应的Unicode码是“U+4F60”。 Ansi码,也称为Windows本地编码,实际上是一个相对模糊的概念。在不同的...

    汉字编码相互转换支持简繁、ANSI UTF8

    汉字编码在信息技术领域中扮演着至关重要的角色,它使得计算机能够理解和处理中文字符。本文将深入探讨汉字编码的原理、相互转换以及与ANSI和UTF8的关系。 首先,我们要了解汉字编码的基本概念。汉字编码是将汉字...

    UNICODE和GBK编码转换

    ### UNICODE和GBK编码转换 #### 知识点概述 本文将详细介绍如何在Windows平台上实现UNICODE与GBK(简体中文编码)之间的转换。这涉及到字符集的基础知识、Windows API函数的使用以及具体的代码实现。 #### 字符...

    c#怎么实现ANSI转换为汉字

    其中一个常见的需求就是将 ANSI 编码的数据转换为汉字(即 Unicode 编码)。下面我们将通过分析提供的代码片段来详细解释这一过程。 #### ANSI 转换为汉字的基本原理 在计算机中,字符是以二进制形式存储的。不同...

    C++Builder String,UNICODE,UTF8,ANSI互转的类.rar_c

    在C++Builder编程环境中,处理字符串格式转换是常见的任务,特别是在与不同的编码标准如Unicode、UTF-8和ANSI打交道时。本压缩包文件“C++Builder String, UNICODE, UTF8, ANSI互转的类.rar_c”提供了一个专门用于...

    VC ANSI环境下按行读取ANSI、UNICODE 、UNICODE big endian、UTF-8四种文本文件

    本资源摘要信息介绍了如何在VC ANSI环境下按行读取四种不同编码格式的文本文件,包括ANSI、UNICODE、UNICODE big endian和UTF-8。通过研究这四种编码方式的特点,设计了一个继承自CStdioFile类的扩展类CStdioFileEx...

    EncodeDecode & ANSI-UTF8编码转换工具

    总之,"EncodeDecode & ANSI-UTF8编码转换工具"提供了一种便捷的方式来处理编码不兼容的问题,使得不同编码格式的文本文件可以顺利地在不同的系统和环境中交换和显示。了解编码的概念以及它们在不同场景下的应用,...

    Qt中的字符编码转换:UTF8、Unicode、GBK、ASCII、16进制字符、16进制数值

    在开发环境中,如Qt Creator 4.10.1和Qt 5.13.2,编码问题需要注意,因为Windows系统默认使用GBK编码,而Qt默认使用Unicode。这意味着在处理用户输入或读取文件时,可能需要进行适当的编码转换,比如使用`QTextCodec...

    易语言Ansi与Ucs2互转源码.7z

    本压缩包"易语言Ansi与Ucs2互转源码.7z"中包含的源代码,是专门用于在易语言环境下进行Ansi与Ucs2编码之间的转换。这样的转换在处理不同编码格式的数据时非常有用,例如在读写文本文件、网络通信或数据库操作中。...

    packet-ansi_637.rar_637_ansi unicode

    标题中的"packet-ansi_637.rar_637_ansi unicode"暗示了这是一个关于ANSI编码和Unicode编码转换的程序或者数据包。描述中提到的“短消息unicode ascii 编码解码”进一步确认了这个主题,涉及到的是在通信或数据传输...

    XechWic关于Delphi7实现多语言环境unicode支持的方案

    Unicode编码包括UTF-8、UTF-16等多种形式,可以确保跨平台和跨语言的一致性。 #### 实现方案概述 为了使Delphi 7支持多国语言,本方案主要分为两个部分: 1. **Windows API调用显示型Ansi转Unicode处理方案** 2. **...

Global site tag (gtag.js) - Google Analytics