刨根究底字符编码之八——Unicode编码方案概述

在计算机技术的演进中,各国因地域差异而采用的ASCII兼容但存在差异的编码方案(如GB和BIG5)曾引发数据交换的难题。这些问题催生了Unicode/USC编码方案的诞生,它的目标是全球统一字符,消除乱码和编码转换的困扰。1991年,Adobe等业界巨头推出了Unicode标准,定义了一个无所不包的字符集,随后,国际标准化组织ISO/IEC发布了UCS,两者协同合作,确保了编码的兼容性。

Unicode字符集堪称字符世界的地图,为每一个字符分配了唯一的编号。它被划分为多个类别,其中BMP(基本多文种平面)承载了日常使用的字符,包括0号平面的ASCII字符。增补平面SP则用于存放特殊字符或预留空间。私有区0xE000~0xF8FF保留给私有使用,而代理区0xD800-0xDFFF则巧妙地表示其他平面的字符。UTF-16编码方式是Unicode的基石,它以16位表示字符,保持ASCII字符的16位编码不变,同时扩展了对全角字符的支持,如UTF-16中全角字符编码占用两个字节,而UTF-8则以单字节的形式实现ASCII兼容。

在Unicode标准的引领下,Windows从NT开始采用UTF-16编码,兼顾了全球字符支持和原有的ANSI兼容性。尽管UTF-16与ASCII不完全一致,UTF-8的出现则实现了对ASCII的完全兼容。Unicode字符集是开放和扩展的,如我们熟知的Emoji表情,就融入了其中。UCS字符集则衍生出UCS-2和UCS-4,其中UCS-2已逐渐被淘汰,UCS-4与UTF-32基本等价。每个字符都有其独一无二的码点值和名称,如U+0041代表大写字母A,U+4E25则对应汉字“严”。

值得一提的是,Unicode编码与ASCII字符集的十进制0~127是一致的,而U+0000~U+00FF则与ISO/IEC 8859-1(拉丁-1)编码集保持一致。本文深入浅出地阐述了Unicode编码方案的内涵,上一篇讨论了ANSI编码与Code Page的细节,而下一篇文章将进一步探讨字节序在字符编码中的重要角色。敬请期待,我们将在字节序与字符编码的演变历程中继续探索。

  • 鍒ㄦ牴绌跺簳瀛楃缂栫爜涔嬪叓鈥斺擴nicode缂栫爜鏂规姒傝堪
    绛旓細UTF-16缂栫爜鏂瑰紡鏄疷nicode鐨勫熀鐭筹紝瀹冧互16浣嶈〃绀哄瓧绗︼紝淇濇寔ASCII瀛楃鐨16浣嶇紪鐮佷笉鍙橈紝鍚屾椂鎵╁睍浜嗗鍏ㄨ瀛楃鐨勬敮鎸侊紝濡俇TF-16涓叏瑙瀛楃缂栫爜鍗犵敤涓や釜瀛楄妭锛岃孶TF-8鍒欎互鍗曞瓧鑺傜殑褰㈠紡瀹炵幇ASCII鍏煎銆傚湪Unicode鏍囧噯鐨勫紩棰嗕笅锛學indows浠嶯T寮濮嬮噰鐢║TF-16缂栫爜锛屽吋椤句簡鍏ㄧ悆瀛楃鏀寔鍜屽師鏈夌殑ANSI鍏煎鎬с傚敖绠TF-16...
  • 鍒ㄦ牴绌跺簳瀛楃缂栫爜涔鍗佷竴鈥斺UTF-8缂栫爜鏂瑰紡涓庡瓧鑺傚簭鏍囪BOM
    绛旓細UTF-8锛屼綔涓篣nicode鏍囧噯鐨勫熀鐭筹紝宸у鍦拌В鍐充簡UTF-16鐨勬晥鐜囦笌鍏煎鎬х煕鐩俱傝繖涓彉闀跨殑8浣缂栫爜绯荤粺锛岄氳繃1鍒4涓瓧鑺傛潵琛ㄨ揪鏃犻檺鐨刄nicode瀛楃锛屽ASCII瀛楃閫忔槑锛屼笖涓嶢SCII鏃犵紳瀵规帴銆傚畠浠ラ珮鏁堝墠鍚戣В鏋愩佸閿欐у己鍜岃嚜鍚屾鐨勭壒鎬э紝璧㈠緱浜嗕簰鑱旂綉涓栫晫鐨勯潚鐫愩傚崜瓒婄壒鎬т竴瑙 缂栫爜绌洪棿澶: 閫傚簲鏈潵Unicode鐨勬墿灞曪紝涓...
  • 鍒ㄦ牴绌跺簳瀛楃缂栫爜涔鍗佷簩鈥斺UTF-8绌绔熸槸鎬庝箞缂栫爜鐨
    绛旓細缂栫爜绠楁硶璇﹁В UTF-8鐨勭紪鐮佸苟闈炵畝鍗曠矖鏆达紝鑰屾槸閫氳繃绮惧績璁捐鐨勫墠缂鐮佹潵璇嗗埆瀛楃闀垮害銆傚鏋滈瀛楄妭鏄0锛岄偅瀹冩槸涓瀛楄妭缂栫爜锛孉SCII瀛楃鐨勭洿鎺ヤ綋鐜帮紱110寮澶寸殑琛ㄧず鍙屽瓧鑺傦紝鍚庣画瀛楄妭浠10寮澶达紱1110鍜10寮澶村垯浠h〃涓夊瓧鑺傚拰鍥涘瓧鑺傜紪鐮併傝繖绉嶇紪鐮佽鍒欑‘淇濅簡姣忎釜瀛楃閮借兘鍑嗙‘鏃犺鍦拌璇嗗埆鍜瑙g爜銆傜紪鐮佺┖闂翠笌涓寸晫鍊 浠127...
  • 鍒ㄦ牴绌跺簳瀛楃缂栫爜涔涓鈥斺ANSI缂栫爜涓庝唬鐮侀〉
    绛旓細浠g爜椤垫槸寰蒋鍦╓indows鎿嶄綔绯荤粺涓紩鍏ョ殑姒傚康锛屽畠鎵╁睍浜咮IOS鍘熺敓鏀寔鐨瀛楃闆锛屽Windows 2000涔嬪墠鐨勪唬鐮侀〉瀹氫箟锛屽UTF-16鍑虹幇鍚庯紝鍚勭鍟嗕笟宸ㄥご涔熷畾涔変簡鍚勮嚜鐨勪唬鐮侀〉锛屽Oracle鍜孲AP鐨勪笓鏈缂栫爜銆備緥濡傦紝EUC浠g爜椤靛湪Unix绯荤粺涓父鐢ㄤ簬涓枃瀛楃鐨勫鐞嗭紝濡侲UC-CN锛孶TF缂栫爜鍒欐湁UTF-8鍦╓indows涓殑CP1208銆丮ac鐨凜P...
  • 鍒ㄦ牴绌跺簳瀛楃缂栫爜涔浜鈥斺绠浣撴眽瀛楃紪鐮佹柟妗(GB2312銆丟BK绛)浠ュ強鍏ㄨ...
    绛旓細鍏ㄨ瀛楃鍗犳嵁涓ゅ瓧鑺傜┖闂达紝鍗婅瀛楃鍗犵敤涓瀛楄妭銆侴B绯诲垪缂栫爜濡侴B2312鍜孏BK鍦ㄥ鐞嗚繖浜涘瓧绗︽椂锛屼笉浠呰鑰冭檻缂栫爜鐨勬墿灞曟э紝杩樿澶勭悊ASCII涓庡瀛楄妭瀛楃鐨勬贩鍚堛傝孶nicode浣滀负鍏ㄧ悆鏍囧噯锛屼繚鐣欎簡鍏ㄨ瀛楃锛屼絾鍦║TF-8绛夌紪鐮佷綋绯讳腑锛屽叏瑙掑拰鍗婅鐨勫叧绯诲垯鍙樺緱澶嶆潅鑰岀嫭鐗广傚湪瀹為檯浣跨敤涓紝鐞嗚В鍖轰綅鐮併佸浗鏍囩爜銆佸唴鐮併佸鐮佸拰...
  • 鍒ㄦ牴绌跺簳瀛楃缂栫爜涔鍗佸洓鈥斺UTF-16绌剁珶鏄庝箞缂栫爜鐨
    绛旓細鐒惰岋紝UTF-16鐨勬墿灞曟у拰閫傚簲鎬у苟闈炴棤闄愶紝瀹冮潰涓寸潃琚玌TF-8杩欐牱楂樻晥缂栫爜鍙兘鍙栦唬鐨勬寫鎴樸傜紪鐮佸琛ュ钩闈瀛楃鐨勭璇鍦ㄤ簬鍥涗釜姝ラ锛氶鍏堬紝灏嗚秴鍑築MP鐨勭爜鐐瑰噺鍘0x10000锛屽緱鍒20浣嶇殑姣旂壒缁勶紱鎺ョ潃锛岄珮浣嶇殑10浣嶅姞涓0xD800锛屽舰鎴愬紩瀵间唬鐞嗭紝浣庝綅10浣嶅姞涓0xDC00锛屾瀯鎴愬熬闅忎唬鐞嗭紱鏈鍚庯紝灏嗚繖涓ら儴鍒嗗悎骞讹紝褰㈡垚閭d釜鈥滅嫭...
  • 鍒ㄦ牴绌跺簳瀛楃缂栫爜涔鍏鈥斺绠浣撴眽瀛楃紪鐮佷腑鍖轰綅鐮併佸浗鏍囩爜銆佹満鍐呯爜...
    绛旓細鍖轰綅鐮侊細姹夊瓧鐨勫熀鐭筹紝鐢遍珮浣嶅瓧鑺45锛堝搴77锛夊拰浣庝綅瀛楄妭82锛堝搴114锛夌粍鎴愶紝杩欐槸瀛楃缂栫爜鐨勬渶鍒濆舰寮忥紝浣嗕负浜嗛伩寮ASCII瀛楃鍐茬獊锛屽尯浣嶇爜闇瑕佸姞涓32锛屽舰鎴愬浗鏍囩爜銆傚浗鏍囩爜锛堜氦鎹㈢爜锛夛細鍥芥爣鐮佹槸鍖轰綅鐮佺殑鍗囩骇鐗堬紝閫氳繃灏嗛珮浣嶅瓧鑺傚姞80H锛圓SCII鎺у埗瀛楃锛夊拰浣庝綅瀛楄妭鍔80H锛堝叏瑙掑瓧绗︼級鏉ュ尯鍒嗭紝浠ョ‘淇濅笌ASCII瀛楃鐨...
  • 鍒ㄦ牴绌跺簳瀛楃缂栫爜涔涓鈥斺瀛楃缂栫爜鐨勭敱鏉
    绛旓細涓轰簡纭繚瀛楃鍦ㄤ笉鍚岃绠楁満涔嬮棿鐨勪竴鑷存э紝蹇呴』鍒跺畾缁熶竴鐨勮浆鎹㈣鍒欙紝杩欏氨鏄瀛楃缂栫爜鏍囧噯鐨勮癁鐢熻儗鏅備簩銆丒BCDIC涓嶢SCII鐨勮緝閲 鏈鏃╂湡鐨勫瓧绗︾紪鐮佹爣鍑嗘槸EBCDIC锛岀敱IBM涓哄ぇ鍨嬫満绯荤粺寮鍙戙傜劧鑰岋紝瀹冪殑璁捐瀛樺湪缂洪櫡锛屽瓧姣嶆帓鍒椾笉杩炵画锛岃繖浣垮緱EBCDIC鍦ㄤ釜浜鸿绠楁満棰嗗煙骞舵湭澶ц鍏堕亾銆傜浉姣斾箣涓嬶紝ASCII鐮佸湪1968骞寸敱ANSI鎺ㄥ嚭锛...
  • 鍒ㄦ牴绌跺簳瀛楃缂栫爜涔嬩竴鈥斺鍏抽敭鏈瑙i噴(涓)
    绛旓細娣卞叆鎺㈣瀛楃缂栫爜鐨勫ゥ绉橈細鏈瑙f瀽涓庣悊瑙(涓婄瘒)瀛楃缂栫爜锛屽熀纭涓殑鍩虹煶锛氬湪鏁板瓧涓栫晫涓紝瀛楃骞堕潪鐩存帴浠ユ垜浠鐭ョ殑褰㈡佸瓨鍦紝鑰屾槸閫氳繃涓绯诲垪缂栫爜瑙勫垯灏嗗叾杞寲涓轰簩杩涘埗浠g爜銆傝繖涓杩囩▼涓殑鍏抽敭鏈锛屽浣嶃佸瓧鑺傘佸瓧闀垮拰閫熺巼锛屾槸鐞嗚В缂栫爜浣撶郴鐨勫熀鐭炽備綅 (Bit) - 鏁版嵁鐨勫井灏忓熀鐭筹細浣嶏紝浣滀负浜岃繘鍒剁殑鍩烘湰鍗曞厓锛0...
  • 扩展阅读:字符编码表unicode ... 统一字符编码定长类型 ... 字符编码查询 ... c #根据符号分割字符串 ... 中文编码转换器 ... 字符集编码对照表 ... 编码字符集表示的是 ... utf8字符编码表 ... θ型复制模式图 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网