ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 18702|回复: 12

[求助] 判断汉字--CJK编码范围,附GB2312/GBK/UNICODE等介绍

[复制链接]

TA的精华主题

TA的得分主题

发表于 2012-8-16 10:47 | 显示全部楼层 |阅读模式
本帖已被收录到知识树中,索引项:文本处理和正则
本帖最后由 liucqa 于 2013-4-10 23:58 编辑

什么是CJK:
中日韩统一表意文字(CJK Unified Ideographs),目的是要把分别来自中文、日文、韩文、越文中,本质、意义相同、形状一样或稍异的表意文字(主要为汉字,但也有仿汉字如日本国字、韩国独有汉字、越南的喃字)于ISO 10646及Unicode标准内赋予相同编码。CJK 是中文(Chinese)、日文(Japanese)、韩文(Korean)三国文字的缩写。顾名思义,它能够支持这三种文字。实际上,CJK 能够支持在 LaTeX 中使用包括中文、日文、韩文在内的多种亚洲双字节文字。
《CJK统一汉字编码字符集》— 国家标准 GB13000.1 是完全等同于国际标准《通用多八位编码字符集 (UCS)》 ISO 10646.1。
《GB13000.1》中最重要的也经常被采用的是其双字节形式的基本多文种平面。在这65536个码位的空间中,定义了几乎所有国家或地区的语言文字和符号。其中从0x4E00到 0x9FA5 的连续区域包含了 20902 个来自中国(包括台湾)、日本、韩国的汉字,称为 CJK 汉字。CJK 是《GB2312-80》、《BIG5》等字符集的超集。


CJK基本   [4E00-9FFF]    20992码位 实际20940字
CJK扩展A   [3400-4DBF]    6592码位  实际6582字
CJK扩展B   [20000-2A6DF]  42720码位 实际42711字
CJK扩展C   [2A700-2B73F]  4159码位  实际4149字
CJK扩展D   [2B740-2B81F]  224码位  实际222字
CJK兼容扩展  [2F800-2FA1F]  544码位  实际542字
CJK部首扩展  [2E80-2EFF]    128码位  实际115字
CJK康熙部首  [2F00-2FDF]    224码位  实际214字
CJK笔画    [31C0-31EF]    48码位   实际36字
CJK兼容      [F900-FAFF]    512个码位  实际477字
PUA(GBK)   [E815-E86F]    90个码位   实际80字
PUA部件扩展  [E400-E5FF]    511个码位  实际452字
PUA缺字增补  [E600-E6BF]    191个码位  实际185字

看着这个字符编码集合,判断汉字真是一件不容易的事情

在WORD上只要在字后按复合键ALT+X,都会显示该字编码

一般所说的  一~龥  指的范围是CJK统一汉字(不过少了最后的几个偏旁),9FA5
           一
   指的范围是CJK统一汉字+专用区+cjk兼容汉字,                 FA29
                                                                                                                      一   4E00

扩展字库:
http://ishare.iask.sina.com.cn/f/15177958.html




评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-8-16 11:10 | 显示全部楼层
1)标准CJK文字

http://www.unicode.org/Public/UNIDATA/Unihan.html
Code point range         Block name         Release
U+3400..U+4DB5         CJK Unified Ideographs Extension A         3.0
U+4E00..U+9FA5         CJK Unified Ideographs         1.1
U+9FA6..U+9FBB         CJK Unified Ideographs         4.1
U+F900..U+FA2D         CJK Compatibility Ideographs         1.1
U+FA30..U+FA6A         CJK Compatibility Ideographs         3.2
U+FA70..U+FAD9         CJK Compatibility Ideographs         4.1
U+20000..U+2A6D6         CJK Unified Ideographs Extension B         3.1
U+2F800..U+2FA1D         CJK Compatibility Supplement         3.1

2)全角ASCII、全角中英文标点、半宽片假名、半宽平假名、半宽韩文字母:FF00-FFEF

http://www.unicode.org/charts/PDF/UFF00.pdf

3)CJK部首补充:2E80-2EFF

http://www.unicode.org/charts/PDF/U2E80.pdf

4)CJK标点符号:3000-303F

http://www.unicode.org/charts/PDF/U3000.pdf

5)CJK笔划:31C0-31EF

http://www.unicode.org/charts/PDF/U31C0.pdf

6)康熙部首:2F00-2FDF

http://www.unicode.org/charts/PDF/U2F00.pdf

7)汉字结构描述字符:2FF0-2FFF

http://www.unicode.org/charts/PDF/U2FF0.pdf

8)注音符号:3100-312F

http://www.unicode.org/charts/PDF/U3100.pdf

9)注音符号(闽南语、客家语扩展):31A0-31BF

http://www.unicode.org/charts/PDF/U31A0.pdf

10)日文平假名:3040-309F

http://www.unicode.org/charts/PDF/U3040.pdf

11)日文片假名:30A0-30FF

http://www.unicode.org/charts/PDF/U30A0.pdf

12)日文片假名拼音扩展:31F0-31FF

http://www.unicode.org/charts/PDF/U31F0.pdf

13)韩文拼音:AC00-D7AF

http://www.unicode.org/charts/PDF/UAC00.pdf

14)韩文字母:1100-11FF

http://www.unicode.org/charts/PDF/U1100.pdf

15)韩文兼容字母:3130-318F

http://www.unicode.org/charts/PDF/U3130.pdf

16)太玄经符号:1D300-1D35F

http://www.unicode.org/charts/PDF/U1D300.pdf

17)易经六十四卦象:4DC0-4DFF

http://www.unicode.org/charts/PDF/U4DC0.pdf

18)彝文音节:A000-A48F

http://www.unicode.org/charts/PDF/UA000.pdf

19)彝文部首:A490-A4CF

http://www.unicode.org/charts/PDF/UA490.pdf

20)盲文符号:2800-28FF

http://www.unicode.org/charts/PDF/U2800.pdf

21)CJK字母及月份:3200-32FF

http://www.unicode.org/charts/PDF/U3200.pdf

22)CJK特殊符号(日期合并):3300-33FF

http://www.unicode.org/charts/PDF/U3300.pdf

23)装饰符号(非CJK专用):2700-27BF

http://www.unicode.org/charts/PDF/U2700.pdf

24)杂项符号(非CJK专用):2600-26FF

http://www.unicode.org/charts/PDF/U2600.pdf

25)中文竖排标点:FE10-FE1F

http://www.unicode.org/charts/PDF/UFE10.pdf

26)CJK兼容符号(竖排变体、下划线、顿号):FE30-FE4F

http://www.unicode.org/charts/PDF/UFE30.pdf

以上翻译自Unicode官方网站,部分译法可能不够准确,还望大家予以指正!如有疏漏、错误之处也请一并指出,多谢!

  0000-007F:C0控制符及基本拉丁文 (C0 Control and Basic Latin)

  0080-00FF:C1控制符及拉丁文补充-1 (C1 Control and Latin 1 Supplement)

  0100-017F:拉丁文扩展-A (Latin Extended-A)

  0180-024F:拉丁文扩展-B (Latin Extended-B)

  0250-02AF:国际音标扩展 (IPA Extensions)

  02B0-02FF:空白修饰字母 (Spacing Modifiers)

  0300-036F:结合用读音符号 (Combining Diacritics Marks)

  0370-03FF:希腊文及科普特文 (Greek and Coptic)

  0400-04FF:西里尔字母 (Cyrillic)

  0500-052F:西里尔字母补充 (Cyrillic Supplement)

  0530-058F:亚美尼亚语 (Armenian)

  0590-05FF:希伯来文 (Hebrew)

  0600-06FF:阿拉伯文 (Arabic)

  0700-074F:叙利亚文 (Syriac)

  0750-077F:阿拉伯文补充 (Arabic Supplement)

  0780-07BF:马尔代夫语 (Thaana)

  07C0-077F:西非书面语言 (N'Ko)

  0800-085F:阿维斯塔语及巴列维语 (Avestan and Pahlavi)

  0860-087F:Mandaic

  0880-08AF:撒马利亚语 (Samaritan)

  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)

  1380-139F:埃塞俄比亚语补充 (Ethiopic Supplement)

  13A0-13FF:切罗基语 (Cherokee)

  1400-167F:统一加拿大土著语音节 (Unified Canadian Aboriginal Syllabics)

  1680-169F:欧甘字母 (Ogham)

  16A0-16FF:如尼文 (Runic)

  1700-171F:塔加拉语 (Tagalog)

  1720-173F:Hanunóo

  1740-175F:Buhid

  1760-177F:Tagbanwa

  1780-17FF:高棉语 (Khmer)

  1800-18AF:蒙古文 (Mongolian)

  18B0-18FF:Cham

  1900-194F:Limbu

  1950-197F:德宏泰语 (Tai Le)

  1980-19DF:新傣仂语 (New Tai Lue)

  19E0-19FF:高棉语记号 (Kmer Symbols)

  1A00-1A1F:Buginese

  1A20-1A5F:Batak

  1A80-1AEF:Lanna

  1B00-1B7F:巴厘语 (Balinese)

  1B80-1BB0:巽他语 (Sundanese)

  1BC0-1BFF:Pahawh Hmong

  1C00-1C4F:雷布查语(Lepcha)

  1C50-1C7F:Ol Chiki

  1C80-1CDF:曼尼普尔语 (Meithei/Manipuri)

  1D00-1D7F:语音学扩展 (Phonetic Extensions)

  1D80-1DBF:语音学扩展补充 (Phonetic Extensions Supplement)

  1DC0-1DFF:结合用读音符号补充 (Combining Diacritics Marks Supplement)

  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 Diacritics Marks for Symbols)

  2100-214F:字母式符号 (Letterlike Symbols)

  2150-218F:数字形式 (Number Form)

  2190-21FF:箭头 (Arrows)

  2200-22FF:数学运算符 (Mathematical Operator)

  2300-23FF:杂项工业符号 (Miscellaneous Technical)

  2400-243F:控制图片 (Control Pictures)

  2440-245F:光学识别符 (Optical Character Recognition)

  2460-24FF:封闭式字母数字 (Enclosed Alphanumerics)

  2500-257F:制表符 (Box Drawing)

  2580-259F:方块元素 (Block Element)

  25A0-25FF:几何图形 (Geometric Shapes)

  2600-26FF:杂项符号 (Miscellaneous Symbols)

  2700-27BF:印刷符号 (Dingbats)

  27C0-27EF:杂项数学符号-A (Miscellaneous Mathematical Symbols-A)

  27F0-27FF:追加箭头-A (Supplemental Arrows-A)

  2800-28FF:盲文点字模型 (Braille Patterns)

  2900-297F:追加箭头-B (Supplemental Arrows-B)

  2980-29FF:杂项数学符号-B (Miscellaneous Mathematical Symbols-B)

  2A00-2AFF:追加数学运算符 (Supplemental Mathematical Operator)

  2B00-2BFF:杂项符号和箭头 (Miscellaneous Symbols and Arrows)

  2C00-2C5F:格拉哥里字母 (Glagolitic)

  2C60-2C7F:拉丁文扩展-C (Latin Extended-C)

  2C80-2CFF:古埃及语 (Coptic)

  2D00-2D2F:格鲁吉亚语补充 (Georgian Supplement)

  2D30-2D7F:提非纳文 (Tifinagh)

  2D80-2DDF:埃塞俄比亚语扩展 (Ethiopic Extended)

  2E00-2E7F:追加标点 (Supplemental Punctuation)

  2E80-2EFF:CJK 部首补充 (CJK Radicals Supplement)

  2F00-2FDF:康熙字典部首 (Kangxi Radicals)

  2FF0-2FFF:表意文字描述符 (Ideographic Description Characters)

  3000-303F:CJK 符号和标点 (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)

  31C0-31EF:CJK 笔画 (CJK Strokes)

  31F0-31FF:日文片假名语音扩展 (Katakana Phonetic Extensions)

  3200-32FF:封闭式 CJK 文字和月份 (Enclosed CJK Letters and Months)

  3300-33FF:CJK 兼容 (CJK Compatibility)

  3400-4DBF:CJK 统一表意符号扩展 A (CJK Unified Ideographs Extension A)

  4DC0-4DFF:易经六十四卦符号 (Yijing Hexagrams Symbols)

  4E00-9FBF:CJK 统一表意符号 (CJK Unified Ideographs)

  A000-A48F:彝文音节 (Yi Syllables)

  A490-A4CF:彝文字根 (Yi Radicals)

  A500-A61F:Vai

  A660-A6FF:统一加拿大土著语音节补充 (Unified Canadian Aboriginal Syllabics Supplement)

  A700-A71F:声调修饰字母 (Modifier Tone Letters)

  A720-A7FF:拉丁文扩展-D (Latin Extended-D)

  A800-A82F:Syloti Nagri

  A840-A87F:八思巴字 (Phags-pa)

  A880-A8DF:Saurashtra

  A900-A97F:爪哇语 (Javanese)

  A980-A9DF:Chakma

  AA00-AA3F:Varang Kshiti

  AA40-AA6F:Sorang Sompeng

  AA80-AADF:Newari

  AB00-AB5F:越南傣语 (Vi?t Thái)

  AB80-ABA0:Kayah Li

  AC00-D7AF:朝鲜文音节 (Hangul Syllables)

  D800-DBFF:High-half zone of UTF-16

  DC00-DFFF:Low-half zone of UTF-16

  E000-F8FF:自行使用区域 (Private Use Zone)

  F900-FAFF:CJK 兼容象形文字 (CJK Compatibility Ideographs)

  FB00-FB4F:字母表达形式 (Alphabetic Presentation Form)

  FB50-FDFF:阿拉伯表达形式A (Arabic Presentation Form-A)

  FE00-FE0F:变量选择符 (Variation Selector)

  FE10-FE1F:竖排形式 (Vertical Forms)

  FE20-FE2F:组合用半符号 (Combining Half Marks)

  FE30-FE4F:CJK 兼容形式 (CJK Compatibility Forms)

  FE50-FE6F:小型变体形式 (Small Form Variants)

  FE70-FEFF:阿拉伯表达形式B (Arabic Presentation Form-B)

  FF00-FFEF:半型及全型形式 (Halfwidth and Fullwidth Form)

  FFF0-FFFF:特殊 (Specials)

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-8-16 11:14 | 显示全部楼层
本帖最后由 liucqa 于 2012-8-16 12:36 编辑

http://www.fmddlmyy.cn/text24.html    Unicode、GB2312、GBK和GB18030中的汉字
http://bbs.zdic.net/thread-163455-1-1.html       IRGN1869,CJK-E的一个DOC文件


IRG(国际标准化组织表意文字小组)
这个小组负责制定CJK编码,目前已经出到CJK扩展E,在Windows系统中目前默认只支持EXT-B
http://appsrv.cse.cuhk.edu.hk/~irg/index.htm  主页
http://appsrv.cse.cuhk.edu.hk/~irg/n1801-1900.html  发布的文档

××××××××××××××××××××××××××××××××××××××
什么是GB18030?
GB18030有两个版本:GB18030-2000和GB18030-2005。GB18030-2000是GBK的取代版本,它的主要特点是在GBK基础上增加了CJK统一汉字扩充A的汉字。GB18030-2005的主要特点是在GB18030-2000基础上增加了CJK统一汉字扩充B的汉字。国家标准GB18030《信息交换用汉字编码字符集基本集的扩充》是我国继GB2312-1980和GB13000-1993之后最重要的汉字编码标准,是我国计算机系统必须遵循的基础性标准之一。

GB18030-2000编码标准是由信息产业部和国家质量技术监督局在2000年 3月17日联合发布的,并且将作为一项国家标准在2001年的1月正式强制执行。
GB18030-2005《信息技术中文编码字符集》是我国自主研制的以汉字为主并包含多种我国少数民族文字(如藏、蒙古、傣、彝、朝鲜、维吾尔文等)的超大型中文编码字符集强制性标准,其中收入汉字70000余个。

所以相关关系为:
GBK+扩充字体A=GB18030-2000
GB18030-2000+扩充字体B=GB18030-2005

GB18030-2000是全文强制性标准,市场上销售的产品必须符合。
2005年发布的GB18030-2005在GB18030-2000的基础上增加了42711个汉字和多种我国少数民族文字的编码,增加的这些内容是推荐性的。所以GB18030-2005为部分强制性标准,自发布之日起代替GB18030-2000。


××××××××××××××××××
什么是GB13000?
GB13000 全称:国家标准GB13000.1:1993《信息技术 通用多八位编码字符集(UCS)第一部分:体系结构与基本多文种平面》,此标准等同采用国际标准ISO/IEC 10646.1:1993《信息技术 通用多八位编码字符集(UCS)第一部分:体系结构与基本多文种平面》。
GB13000是在GB和GBK之间发布的国家汉字标准,相对于我们常用的GBK,GB13000少了:
1、简化字总表中有52个汉字尚未收入 GB 13000;
2、《康熙字典》及《辞海》有中28 个部首尚未收入 GB 13000
3、13 个汉字结构符。



×××××××××××××××××××××
什么是GBK?
中文名称:汉字内码规范
英文名称:Chinese Internal Code Specification
简称: GBK ( K 是“扩展”的汉语拼音第一个字母)

国家在1980年发布了GB2312汉字编码时由于只包含了6763个简体汉字和682个符号,所以远远无法满足日常的需要,所以在1995年又推出了GBK(汉字扩展内码规范),的目的是解决汉字收字不足、简繁同平面共存、简化代码体系间转换等汉字信息交换的瓶颈问题,并在保持已有应用软件兼容性的前提下,向最终的国际统一双字节字符集标准 ISO10646.1 迈进。
GBK编码是中国大陆制订的、等同于UCS的新的中文编码扩展国家标准。该编码标准兼容GB2312,共收录汉字21003个、符号883个,并提供1894个造字码位,简、繁体字融于一库。作为非 UCS (ISO 10646) 体系的代码页(Code Page),适用于中文信息的处理、交换、存储、显现、输入和输出。P-Windows3.2和苹果OS以GB2312为基本汉字编码, Windows 95/98则以GBK为基本汉字编码。
GBK包含:
1、GB2312-80 的全部汉字、非汉字符号。
2、GB13000.1中的其他CJK 汉字。
以上两项合计为 20902 个 GB 化汉字。



×××××××××××××××××××××××
什么是GB2312?
GB2312,全称是GB2312-80《信息交换用汉字编码字符集 基本集》,1980年发布,是中文信息处理的国家标准,是中华人民共和国的中文常用汉字编码集,亦为新加坡采用。是强制使用的唯一中文编码。P-Windows3.2和苹果OS就是以GB2312为基本汉字编码, Windows 95/98则以GBK为基本汉字编码、但兼容支持GB2312。GB码共收录6763个简体汉字、682个符号,其中汉字部分:一级字3755,以拼音排序,二级字3008,以偏旁排序。该标准的制定和应用为规范、推动中文信息化进程起了很大作用。



××××××××××××××××××××××
什么是ISO 10646?
ISO 10646 是国际标准化组织 ISO 公布的一个编码标准,即 Universal Multilpe-Octet Coded Character Set(简称 UCS),大陆译为《通用多八位编码字符集》,台湾译为《广用多八位编码字符集》,它与 Unicode 组织的 Unicode 编码完全兼容。ISO 10646.1 是该标准的第一部分《体系结构与基本多文种平面》。我国 1993 年以 GB 13000.1 国家标准的形式予以认可(即 GB 13000.1 等同于 ISO 10646.1)。 ISO 10646 是一个包括世界上各种语言的书面形式以及附加符号的编码体系。其中的汉字部分称为“CJK 统一汉字”(C 指中国,J 指日本,K 指朝鲜)。而其中的中国部分,包括了源自中国大陆的 GB 2312、GB 12345、《现代汉语通用字表》等法定标准的汉字和符号,以及源自台湾的 CNS 11643 标准中第 1、2 字面(基本等同于 BIG-5 编码)、第 14 字面的汉字和符号。



××××××××××××××××××××××
什么是Unicode?        http://www.unicode.org/
国际标准组织于1984年4月成立ISO/IEC JTC1/SC2/WG2工作组,针对各国文字、符号进行统一性编码。1991年美国跨国公司成立Unicode Consortium,并于1991年10月与WG2达成协议,采用同一编码字集。目前Unicode是采用16位编码体系,其字符集内容与ISO10646的BMP(Basic Multilingual Plane)相同。

Unicode 是基于通用字符集(Universal Character Set)的标准来发展,目前版本6.1/6.2。Unicode定义了大到足以代表人类所有可读字符的字符集。
完整打包下载地址:http://hi.baidu.com/wenqinhi/item/3e42c01f2d081ffd64eabf7b

Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。Unicode用数字0-0x10FFFF来映射这些字符,最多可以容纳1114112个字符,或者说有1114112个码位。码位就是可以分配给字符的数字。UTF-8、UTF-16、UTF-32都是将数字转换到程序数据的编码方案。

基本上,计算机只是处理数字。它们指定一个数字,来储存字母或其他字符。在创造Unicode之前,有数百种指定这些数字的编码系统。没有一个编码可以包含足够的字符:例如,单单欧州共同体就需要好几种不同的编码来包括所有的语言。即使是单一种语言,例如英语,也没有哪一个编码可以适用于所有的字母,标点符号,和常用的技术符号。这些编码系统也会互相冲突。也就是说,两种编码可能使用相同的数字代表两个不同的字符,或使用不同的数字代表相同的字符。任何一台特定的计算机(特别是服务器)都需要支持许多不同的编码,但是,不论什么时候数据通过不同的编码或平台之间,那些数据总会有损坏的危险。这也是使用Unicode的原因!


×××××××××××××××××××××××××
什么是UTF-8?
UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码(定长码),也是一种前缀码。它可以用来表示Unicode标准中的任何字符,且其编码中的第一个字节仍与ASCII兼容,这使得原来处理ASCII字符的软件无须或只须做少部份修改,即可继续使用。因此,它逐渐成为电子邮件、网页及其他存储或传送文字的应用中,优先采用的编码。
UTF-8是ASCII的一个超集。因为一个纯ASCII字符串也是一个合法的UTF-8字符串,所以现存的ASCII文本不需要转换。为传统的扩展ASCII字符集设计的软件通常可以不经修改或很少修改就能与UTF-8一起使用。
UTF-8字符串可以由一个简单的算法可靠地识别出来。就是,一个字符串在任何其它编码中表现为合法的UTF-8的可能性很低,并随字符串长度增长而减小。举例说,字符值C0,C1,F5至FF从来没有出现。为了更好的可靠性,可以使用正则表达式来统计非法过长和替代值(可以查看W3 FAQ: Multilingual Forms上的验证UTF-8字符串的正则表达式)。http://www.w3.org/International/questions/qa-forms-utf-8

例如,当使用Perl时,可用以下的表达式测试页面是否使用了UTF-8编码:

$field =~
  m/\A(
     [\x09\x0A\x0D\x20-\x7E]            # ASCII
   | [\xC2-\xDF][\x80-\xBF]             # non-overlong 2-byte
   |  \xE0[\xA0-\xBF][\x80-\xBF]        # excluding overlongs
   | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}  # straight 3-byte
   |  \xED[\x80-\x9F][\x80-\xBF]        # excluding surrogates
   |  \xF0[\x90-\xBF][\x80-\xBF]{2}     # planes 1-3
   | [\xF1-\xF3][\x80-\xBF]{3}          # planes 4-15
   |  \xF4[\x80-\x8F][\x80-\xBF]{2}     # plane 16
  )*\z/x;


TA的精华主题

TA的得分主题

发表于 2012-8-16 11:21 | 显示全部楼层
这个是16进制编码转换成10进制后,与code值有什么对应关系?
ansi字符集于上面有什么对应关系?

TA的精华主题

TA的得分主题

发表于 2012-8-16 11:24 | 显示全部楼层
4E00(转换成十进制是19968)是“一”
而code值(ansi字符集)是53947

TA的精华主题

TA的得分主题

发表于 2012-8-16 11:28 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
你用的代码是十六进制的unicode那他与简体中文GB的十六进制有什么关系,一的4E00对应D2BB

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-8-16 11:34 | 显示全部楼层
本帖最后由 liucqa 于 2013-4-10 23:54 编辑
hhjjpp 发表于 2012-8-16 11:28
你用的代码是十六进制的unicode那他与简体中文GB的十六进制有什么关系,一的4E00对应D2BB

ansi指的是本地系统默认编码,在简体版系统是gb2312/gbk/gb18030

gb2312/gbk/GB18030是国家编码,Unicode是国际编码

Excel vba 的内码是Unicode。

可以使用strconv在ansi和Unicode之间进行转换

TA的精华主题

TA的得分主题

发表于 2012-8-16 11:38 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-8-16 11:44 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-8-16 11:52 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
hhjjpp 发表于 2012-8-16 11:44
03里有strconv函数吗,是vba?

StrConv 函数
请参阅     示例     特性

返回按指定类型转换的 Variant (String)。

语法

StrConv(string, conversion, LCID)

StrConv 函数的语法有下面的命名参数:

部分 说明
string 必要参数。要转换的字符串表达式。
conversion 必要参数。Integer。其值的和决定转换的类型。
LCID 可选的。如果与系统LocaleID不同,则为LocaleID(系统LocaleID为缺省值。)



设置值

conversion 参数的设置值为:

常数 值 说明
vbUpperCase 1 将字符串文字转成大写。
vbLowerCase 2 将字符串文字转成小写。
vbProperCase 3 将字符串中每个字的开头字母转成大写。
vbWide* 4* 将字符串中单字节字符转成双字节字符。
vbNarrow* 8* 将字符串中双字节字符转成单字节字符。
vbKatakana** 16** 将字符串中平假名字符转成片假名字符。
vbHiragana** 32** 将字符串中片假名字符转成平假名字符。
vbUnicode 64 根据系统的缺省码页将字符串转成 Unicode。 (在Macintosh中不可用。)
vbFromUnicode 128 将字符串由 Unicode 转成系统的缺省码页。 (在Macintosh中不可用。)



*应用到远东区域。

**仅应用到日本。

注意 这些常数是由 VBA 指定的。可以在程序中使用它们来替换真正的值。其中大部分是可以组合的,例如 vbUpperCase + vbWide,互斥的常数不能组合,例如 vbUnicode + vbFromUnicode。当在不适用的区域使用常数 vbWide、vbNarrow、vbKatakana,和 vbHiragana 时,就会导致运行时错误。

下面是一些一般情况下的有效分界符:Null (Chr$(0)),水平制表符 (Chr$(9)),换行 (Chr$(10)),垂直制表符 (Chr$(11)),换页 (Chr$(12)) ,回车 (Chr$(13)),空白 (SBCS) (Chr$(32))。在 DBCS中,空白的实际值会随国家/地区而不同。

说明

在把 ANSI 格式的 Byte 数组转换为字符串时,您应该使用 StrConv 函数。当您转换 Unicode 格式的这种数组时,使用赋值语句。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-25 10:28 , Processed in 0.047368 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表