zoukankan      html  css  js  c++  java
  • 什么是Unicode

    写这篇博客的原因,

    从做软件开始,什么ASCII码, Unicode,UTF-8,UTF-16,UTF-32......这些鬼东西总是经常碰到,只知道这些鬼是编码格式,其他的就啥都不清楚了,既然总是遇到,我就试着了解他们一下。我遇到的每一种编码我都会留下一篇博客,作为学习笔记。

    以下内容来自百度百科

    1)起源

    因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。

    最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),0 - 255被用来表示大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母A的编码是65,小写字母z的编码是122。
     
    如果要表示中文,显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。类似的,日文和韩文等其他语言也有这个问题。
     
    为了统一所有文字的编码,Unicode应运而生。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。
     
     
     
    2)定义
    Unicode(统一码,万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。
     
    3)注意
     在文字处理方面,统一码为每一个字符而非字形定义唯一的代码(即一个整数)。换句话说,统一码以一种抽象的方式(即数字)来处理字符,并将视觉上的演绎工作(例如字体大小、外观形状、字体形态、文体等)留给其他软件来处理,例如网页浏览器或是文字处理器。
     
    4)作用
    能够使计算机实现跨语言、跨平台的文本转换及处理。
     
    5)分布
    Unicode 到目前为止所定义的十七个平面中,第0平面(BMP)最为重要,其编码分布如下:
    注:中文范围 4E00-9FA5:CJK 统一表意符号 (CJK Unified Ideographs)
    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)
    Microsoft WordMicrosoft Word
    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-07FF:西非书面语言 (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 Supplem
    unicodeunicode
    ent)
    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)
  • 相关阅读:
    jmeter随笔(11)--上传文件接口出错
    初探接口测试框架--python系列1
    jmeter随笔(10)-中文url编码问题
    jmeter随笔(9)--有两种编码风格,导致数据乱码
    jmeter随笔(8)--请求post的 数据为空
    jmeter随笔(7)--查看请求响应,为空
    jmeter随笔(5)--断言中正则表达式的特殊字符问题和中文乱码显示问号的问题
    jmeter随笔(4)--中文url编码问题
    Fiddler录制jmeter脚本,干货分享
    飞测的脚丫,往下踩
  • 原文地址:https://www.cnblogs.com/baxianhua/p/10598598.html
Copyright © 2011-2022 走看看