ASCIIUnicode、UTF-8

      網友投稿 1107 2025-03-31

      ASCII

      簡介

      ASCII(American Standard Code for Information Interchange-美國信息交換標準代碼),是基于拉丁字母的一套電腦編碼系統,主要用于顯示現代英語和其他西歐語言。它是最通用的信息交換標準,到目前為止定義了128個字符。

      產生原因

      在計算機中,所有的數據在存儲和運算時都要使用二進制數表示(因為計算機用高電平和低電平分別表示1和0),例如52個英文字母、1-9的數字、常用的一些字符在計算機中存儲時也需要使用二進制來表示,而具體使用什么樣的二進制來表示,不同的人有不同的約定,而為了達到相互通信而不造成混亂的目的,大家就必須使用統一的編碼規則,于是美國國家標準學會(American National Standard Institute, ANSI)就制定了ASCII編碼,ASCII編碼統一規定了上述符合用哪些二進制數來表示。

      表達方式

      ASCII碼使用指定的7位或者8位二進制數組合來表示128種或者256種可能的字符,標準ASCII碼也叫基礎ASCII碼,使用7位二進制數(剩余一位二進制為0)來表示所有的大些和小寫字母、數組0-9、其他字符以及美式英語中使用的椰樹控制字符。

      標準表

      十進制

      縮寫/字符

      說明

      0

      NUL(null)

      空字符

      1

      SOH(start of headline)

      標題開始

      2

      STX (start of text)

      正文開始

      3

      ETX (end of text)

      正文結束

      4

      EOT (end of transmission)

      傳輸結束

      5

      ENQ (enquiry)

      請求

      6

      ACK (acknowledge)

      收到通知

      7

      BEL (bell)

      響鈴

      8

      BS (backspace)

      退格

      9

      HT (horizontal tab)

      水平制表符

      10

      LF (NL line feed, new line)

      換行鍵

      11

      VT (vertical tab)

      垂直制表符

      12

      FF (NP form feed, new page)

      換頁鍵

      13

      CR (carriage return)

      回車鍵

      14

      SO (shift out)

      不用切換

      15

      SI (shift in)

      啟用切換

      16

      DLE (data link escape)

      數據鏈路轉義

      17

      DC1 (device control 1)

      設備控制1

      18

      DC2 (device control 2)

      設備控制2

      19

      DC3 (device control 3)

      設備控制3

      20

      DC3 (device control 4)

      設備控制4

      21

      NAK(negative acknowledge)

      拒絕接受

      22

      SYN(synchronous idle)

      同步空閑

      23

      ETB (end of trans. block)

      結束傳輸塊

      24

      CAN (cancel)

      取消

      25

      EM (end of medium)

      媒介結束

      26

      SUB (substitute)

      代替

      27

      ESC (escape)

      換碼(溢出)

      28

      FS (file separator)

      文件分隔符

      29

      GS (group separator)

      分組符

      30

      RS (record separator)

      記錄分隔符

      31

      US (unit separator)

      單元分隔符

      32

      (space)

      空格

      33

      !

      嘆號

      34

      "

      雙引號

      35

      #

      井號

      36

      $

      美元符

      37

      %

      百分號

      38

      &

      和號

      39

      '

      閉單引號

      40

      (

      開括號

      41

      )

      閉括號

      42

      *

      星號

      43

      +

      加號

      44

      ,

      逗號

      45

      -

      減號/破折號

      46

      .

      句號

      47

      /

      斜桿

      48

      0

      字符0

      49

      1

      字符1

      50

      2

      字符2

      51

      3

      字符3

      52

      4

      字符4

      53

      5

      字符5

      54

      6

      字符6

      55

      7

      字符7

      56

      8

      字符8

      57

      9

      字符9

      58

      :

      冒號

      59

      ;

      分號

      60

      <

      小于

      61

      =

      等于

      62

      >

      大于

      63

      ?

      問號

      64

      @

      電子郵件符號

      65

      A

      大寫字母A

      66

      B

      大寫字母B

      67

      C

      大寫字母C

      68

      D

      大寫字母D

      69

      E

      大寫字母E

      70

      F

      大寫字母F

      71

      G

      大寫字母G

      72

      H

      大寫字母H

      73

      I

      大寫字母I

      74

      J

      大寫字母J

      75

      K

      大寫字母K

      76

      L

      大寫字母L

      77

      M

      大寫字母M

      78

      N

      大寫字母N

      79

      O

      大寫字母O

      80

      P

      大寫字母P

      81

      Q

      大寫字母Q

      82

      R

      大寫字母R

      83

      S

      大寫字母S

      84

      T

      大寫字母T

      85

      U

      大寫字母U

      86

      V

      大寫字母V

      87

      W

      大寫字母W

      88

      X

      大寫字母X

      89

      Y

      大寫字母Y

      90

      Z

      大寫字母Z

      91

      [

      開括號

      92

      \

      反斜杠

      93

      ]

      閉開括號

      94

      ^

      脫字符

      95

      _

      下劃線

      96

      `

      開單引號

      97

      a

      小寫字母a

      98

      b

      小寫字母b

      99

      c

      小寫字母c

      100

      d

      小寫字母d

      101

      e

      小寫字母e

      102

      f

      小寫字母f

      103

      g

      小寫字母g

      104

      h

      小寫字母h

      105

      i

      小寫字母i

      106

      j

      小寫字母j

      107

      k

      小寫字母k

      108

      l

      小寫字母i

      109

      m

      小寫字母m

      110

      n

      小寫字母n

      111

      o

      小寫字母o

      112

      p

      小寫字母p

      113

      q

      小寫字母q

      114

      r

      小寫字母r

      115

      s

      小寫字母s

      116

      t

      小寫字母t

      117

      u

      小寫字母u

      118

      v

      小寫字母v

      119

      w

      小寫字母w

      120

      x

      小寫字母x

      121

      y

      小寫字母y

      122

      z

      小寫字母z

      123

      {

      開花括號

      124

      |

      垂線

      125

      }

      閉花括號

      126

      ~

      波浪號

      127

      DEL (delete)

      刪除

      問題

      在英語中,使用128個符號編碼便可以表示所有,但是用來表示其他語言,128個符號是不夠的。比如,在法語中字母上方有注音符號,它就無法使用ASCII碼表示。因此,部分歐洲國家使用字節中閑置的最高位編入新的符號,最多可以表示256個字符,但是,256個字符對于字符超出這個數字的國家就不適用了,比如中國的漢字統計多大10萬左右。一個字節最多只能表示256個字符,肯定是不夠,要想解決這個問題,就必須使用多個字節表達一個符號。

      Unicode

      簡介

      統一碼,也稱萬國碼、單一碼(Unicode)是計算機領域里的一項業界標準,包括字符集、編碼方案等。Unicode是為了解決傳統的字符編碼方案的局限而產生的,它為每種語言的每個字符設定了統一并且唯一的二進制編碼,以滿足跨語言、跨平臺進行文本轉換、處理的要求。

      編碼方式

      Unicode用數字0-0x10FFFF來映射這些字符,最多可以容納1114112個字符/碼位。碼位就是可以分配給這些字符的數字。UTF-8、UTF-16、UTF-32都是講這些數字轉換到程序數據的編碼方案。

      Unicode字符集早期的標準有UCS-2、UCS-4的說法。UCS-2用2個字節編碼,UCS-4用4個字節編碼。UCS-4根據最高位為0的最高字節分成2^7=128個group。每個group再根據次高字節分為256個平面(plane)。每個平面根據第3個字節分為256行(row),每行有256個碼位(cell)。group 0的平面0被稱為BMP(Basic Multilingual Plance)。將UCS-4的BMP去掉前面的兩個零字節就得到了UCS-2。

      每個平面有2^16=65536個碼位。Unicode計劃使用了17個平面,一共16*65526=1114114個碼為。在Unicode5.0.0版本中,已定義的碼位只有238605個,分布在平面0、平面1、平面2、平面14、平面15、平面16。其中平面15個平面16只是定義了兩個各占65534個碼位的專用區(Private Use Area),分別是0xF0000-0xFFFFD和0x100000-0x10FFFD。所謂專區就是保留給大家放自定義字符的區域,簡寫PUA。

      實現方式

      在Unicode中:漢字“字”對應的數字是23383。在Unicode中,我們有很多方式將數字23383表示成程序中的數據,包括:UTF-8、UTF-16、UTF-32。UTF是“UCS Transformation Format”的縮寫,可以翻譯成Unicode字符集轉換格式,即怎樣將Unicode定義的數字轉換成程序數據。例如,“漢字”對應的數字是0x6c49和0x5b57,而編碼的程序數據是:

      BYTE data_utf8[] = {0xE6, 0xB1, 0x89, 0xE5, 0xAD, 0x97}; // UTF-8編碼

      WORD data_utf16[] = {0x6c49, 0x5b57}; //?UTF-16編碼

      DWORD data_utf32[] = {0x6c49, 0x5b57}; //?UTF-32編碼

      這里用BYTE、WORD、DWORD分別表示無符號8位整數,無符號16位整數和無符號32位整數。UTF-8、UTF-16、UTF-32分別以BYTE、WORD、DWORD作為編碼單位。“漢字”的UTF-8編碼需要6個字節?!皾h字”的UTF-16編碼需要兩個WORD,大小是4個字節。“漢字”的UTF-32編碼需要兩個DWORD,大小是8個字節。根據字節序的不同,UTF-16可以被實現為UTF-16LE或UTF-16BE,UTF-32可以被實現為UTF-32LE或UTF-32BE。

      UTF-8

      簡介

      UTF-8(8位元,Universal Character Set/Unicode Transformation Format)是針對Unicode的一種可變長度字符編碼。它可以用來表示Unicode標準中的任意字符,而且其編碼中的第一個字節仍然與ASCII相容,使得原先處理ASCII字符的軟件無需或者只需要進行少部分的修改后,便可繼續使用。因此,它逐漸成為電子郵件、網頁及其他存儲或傳送文字的應用中,優先采用的編碼。

      編碼字節數

      UTF-8使用1-4字節為每個字符編碼:

      一個US-ASCIl字符只需1字節編碼(Unicode范圍由U+0000~U+007F)。

      帶有變音符號的拉丁文、希臘文、西里爾字母、亞美尼亞語、希伯來文、阿拉伯文、敘利亞文等字母則需要2字節編碼(Unicode范圍由U+0080~U+07FF)。

      其他語言的字符(包括中日韓文字、東南亞文字、中東文字等)包含了大部分常用字,使用3字節編碼。

      其他極少使用的語言字符使用4字節編碼。

      字符集

      編碼方式

      16進制編碼

      UTF8-1

      \x00-\x7F

      UTF8-2

      \xC2-\xDF \x80-\xBF

      UTF8-3

      \xE0 \xA0-\xBF \x80-\xBF

      \xE1-\xEC \x80-\xBF \x80-\xBF

      \xED \x80-\x9F \x80-\xBF

      \xEE-\xEF \x80-\xBF \x80-\xBF

      UTF8-4

      \xF0 \x90-\xBF \x80-\xBF \x80-\xBF

      \xF1-\xF3 \x80-\xBF \x80-\xBF \x80-\xBF

      \xF4 \x80-\x8F \x80-\xBF \x80-\xBF

      總結

      對比

      ASCII、Unicode、UTF-8

      編碼

      大小

      支持語言

      ASCII

      1個字節

      英文

      Unicode

      2個字節(生僻字4個字節)

      所有語言

      UTF-8

      1-6個字節,英文1個字節、漢子3個字節、生僻字4-6個字節

      所有語言

      計算機系統通用的字符編碼方式

      在計算機內存中,統一使用Unicode編碼,當需要保存到硬盤或者需要傳輸的時候,就轉換為UTF-8編碼

      場景一:

      用記事本編輯文本時,從文件讀取的UTF-8字符被轉換為Unicode字符到內存里,編輯完成后,保存的時候再把Unicode轉換為UTF-8保存到文件中。

      場景二:

      瀏覽網頁時,服務會把動態生成的Unicode內容轉換為UTF-8再傳輸給瀏覽器。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:實例講解在excel柱形圖上添加折線圖的方法
      下一篇:word中查找的快捷鍵是哪個(word中查找的快捷鍵是什么)
      相關文章
      亚洲gv猛男gv无码男同短文| 好看的电影网站亚洲一区| 亚洲国产成人无码AV在线| 亚洲国产美女精品久久| 911精品国产亚洲日本美国韩国| 亚洲av区一区二区三| 国产成人亚洲精品播放器下载| 国产成人亚洲综合网站不卡| tom影院亚洲国产一区二区| 亚洲一区二区三区国产精品无码| 中文字幕亚洲综合久久| 久久久婷婷五月亚洲97号色| 91在线精品亚洲一区二区| 亚洲综合色一区二区三区小说| 亚洲AV无码专区在线播放中文| 亚洲欧洲日产国码av系列天堂| 国产av无码专区亚洲国产精品| 亚洲国产一区明星换脸| 亚洲午夜爱爱香蕉片| 亚洲小说区图片区另类春色| 国产亚洲成av片在线观看| 亚洲高清国产拍精品26U| 亚洲国产精品无码一线岛国| 亚洲成人激情在线| 久久久无码精品亚洲日韩京东传媒| 麻豆亚洲AV永久无码精品久久 | 亚洲人成人网站在线观看| 亚洲男人在线无码视频| 国产日产亚洲系列| 久久青青成人亚洲精品| 亚洲资源在线观看| 亚洲一级大黄大色毛片| 在线观看亚洲AV每日更新无码| 国产精品亚洲综合久久| jizzjizz亚洲日本少妇| 亚洲一区二区三区在线视频| 亚洲精品成人片在线观看精品字幕| 日本亚洲视频在线| 亚洲综合一区二区精品久久| 国产精品亚洲精品观看不卡| 亚洲国产成人精品无码区花野真一|