unicode 编码
如同它的名字一样,目的就是希望能够建立起业界统一字符集和编码的方案,以满足跨语言,跨平台的数据转换,处理需求。
90年开始研发,94年正式公布第一版,后续根据各国的标准不断增修。
unicode的中文编码
因为历史的原因,日文,韩文中存在汉字以及在原本汉字的基础上变化之后的文字,所以在unicode中被统一编码。CJK(Chinese,Japanse,Koren),以下是CJK的全部的编码方案:
CJK scripts and symbols:
CJK Radicals Supplement (2E80–2EFF) CJK 部首补充
Kangxi Radicals (2F00–2FDF) 康熙 部首
Ideographic Description Characters (2FF0–2FFF) 表意文字描述符
CJK Symbols and Punctuation (3000–303F) CJK 符号和标点
Hiragana (3040–309F) 日文平假名
Katakana (30A0–30FF) 日文片假名
Bopomofo (3100–312F). 注音字母(台湾仍然在使用)
Hangul Compatibility Jamo (3130–318F) 朝鲜文兼容字母
Kanbun (3190–319F). 象形字注释标志
Bopomofo Extended (31A0–31BF) 注音字母扩展
CJK Strokes (31C0–31EF) 笔画
Katakana Phonetic Extensions (31F0–31FF) 日文片假名语音扩展
Enclosed CJK Letters and Months (3200–32FF) 封闭式 CJK 文字和月份
CJK Compatibility (3300–33FF) CJK 兼容 (日本)
CJK Unified Ideographs Extension A (3400–4DBF) CJK 统一表意符号扩展 A
Yijing Hexagram Symbols (4DC0–4DFF) 易经六十四卦符号
CJK Unified Ideographs (4E00–9FFF) CJK 统一表意符号(常见的汉字基本都是在这个范围) 1992年制定
可以看到整个汉字的编码范围是确定的,并且拆分了字(区分不同的地区),注音,偏旁部首,笔画,易经符号等各种中文字符。最后一次(2018年)增增修将CJK统一表意符号的范围是[U+9FA6,U+9FBB],互联网上流传的大量的判断汉字的范围只到9fa5还没有来得及更新。
CJK Unified Ideographs
CJK统一字符编码,一共包括初始版本和后面6次扩展的提交。每次提交都是将CJKV(vitenam)的标准进行融合,以下是初始版本的方案:
初始版本一共包含20,976个汉字,他们是按照康熙字典的笔画进行排序的,而后续的6次扩展没有按照这个排序。所以汉字是混合编排的,简体-繁体转换貌似只能hard-code。
后面每次的增修主要会将各个国家的标准更新的内容更新到新的标准中去,主要是新增汉字。
判断是否是纯汉字语句
def is_chinese(text):
for uchar in text:
if uchar >= u'\u4E00'and uchar <=u'\u9FBB':
continue
else:
return False
return True