關於 charset 的幾種編碼方式
阿新 • • 發佈:2018-12-09
經常遇到charset=gb2312、charset=iso-8859-1、charset=utf-8這幾種編碼方式,它們有什麼不同,看下面的圖
編碼方式 | 含義 |
---|---|
charset=iso-8859-1 | 西歐的編碼,英文編碼 |
charset=gb2312 | 中文編碼 |
charset=utf-8 | 世界通用語言編碼 |
charset=big5 | 繁體中文編碼 |
charset=euc-kr | 韓文編碼 |
除此之外,還有很多其他的編碼方式,其中charset=utf-8可以用到中文、韓文、日文等世界上所有語言編碼上
各個國家和地區制定的不同ANSI
字符集:使用哪些字元,也就是哪些漢字、字母和符號會被收入標準中。
編碼:規定每個字元如何儲存,即用幾個位元組以及哪些位元組來儲存
在制定ANSI標準的時候,字符集和編碼一般都是同時制定的。
“unicode”字符集包含了各種語言使用到的“字元”。由此產生了很多“unicode”字符集編碼的標準,主要分為下面三類。
ISO-8859-1
最簡單的編碼規則,每一個位元組直接作為一個unicode字元。比如,[0xD6, 0xD0] 這兩個位元組,通過 iso-8859-1
GB2312、BIG5、Shift_JIS、ISO-8859-2
把 unicode 字串通過 ANSI 編碼轉化為“位元組串”時,根據各自編碼的規定,一個 unicode 字元可能轉化成一個位元組或多個位元組。 反之,將unicode位元組串轉化成字串時,也可能多個位元組轉化成一個字元。比如,[0xD6, 0xD0] 這兩個位元組,通過 GB2312 轉化為字串時,將得到 [0x4E2D] 一個字元,即 ‘中’ 字。
“ANSI 編碼”的特點:
- 這些“ANSI 編碼標準”都只能處理各自語言範圍之內的 unicode 字元。
- “unicode 字元”與“轉換出來的位元組”之間的關係是人為規定的。
UTF-8,UTF-16,UnicodeBig
與“ANSI 編碼”類似的,把字串通過 unicode 編碼轉化成“位元組串”時,一個 unicode 字元可能轉化成一個位元組或多個位元組。
與“ANSI 編碼”不同的是:
- 這些“unicode 編碼”能夠處理所有的 unicode 字元。
- “unicode 字元”與“轉換出來的位元組”之間是可以通過計算得到的。