utf8和unicode編碼究竟是什么關(guān)系?有何區(qū)別?
更新時(shí)間:2006年12月27日 00:00:00 作者:
UTF8 == Unicode Transformation Format -- 8 bit
是Unicode傳送格式。即把Unicode文件轉(zhuǎn)換成BYTE的傳送流。
UTF8流的轉(zhuǎn)換程序:
Input: unsigned integer c - the code point of the character to be encoded (輸入一個(gè)unicode值)
Output: byte b1, b2,b3, b4 - the encoded sequence of bytes (輸出四個(gè)BYTE值)
Algorithm(算法):
if (c<0x80)
b1 = c>>0 & 0x7F | 0x00
b2 = null
b3 = null
b4 = null
else if (c<0x0800)
b1 = c>>6 & 0x1F | 0xC0
b2 = c>>0 & 0x3F | 0x80
b3 = null
b4 = null
else if (c<0x010000)
b1 = c>>12 & 0x0F | 0xE0
b2 = c>>6 & 0x3F | 0x80
b3 = c>>0 & 0x3F | 0x80
b4 = null
else if (c<0x110000)
b1 = c>>18 & 0x07 | 0xF0
b2 = c>>12 & 0x3F | 0x80
b3 = c>>6 & 0x3F | 0x80
b4 = c>>0 & 0x3F | 0x80
end if
=====================
unicode 是一種編碼表格,例如,給一個(gè)漢字規(guī)定一個(gè)代碼。類(lèi)似 GB2312-1980, GB18030等,只不過(guò)字集不同。
=====================
一個(gè)unicode碼可能轉(zhuǎn)成長(zhǎng)度為一個(gè)BYTE,或兩個(gè),三個(gè),四個(gè)BYTE的UTF8碼,取決于unicode碼的值。英文unicode碼因?yàn)橹敌∮?x80,只要用一個(gè)BYTE的UTF8傳送,比送unicode兩個(gè)BYTEs快。
UTF8是為傳送unicode而想出來(lái)的“再編碼”方法罷了。
UTF8轉(zhuǎn)unicode用我上面給的程序反算即可。
UTF8是現(xiàn)有ASCII系統(tǒng)轉(zhuǎn)向Unicode系統(tǒng)的一個(gè)過(guò)渡解決方案。UTF8是保證 ASCII兼容性,再向大字符集方向擴(kuò)展。這是Unicode推薦的方案。但是因 為解決問(wèn)題的角度不同,對(duì)現(xiàn)有的中文系統(tǒng)不是好的解決方案。 一下連接提供了詳細(xì)的 UTF8編碼的初步知識(shí) http://www.acnis.com/modules.php?name=ArticlE&file=article&sid=102 參考資料:http://www.acnis.com/modules.php?name=ArticlE&file=article&sid=102
什么是Unicode。Unicode的基本目標(biāo)是統(tǒng)一所有的編碼,即它包含所有的字符集。這樣只要一個(gè)系統(tǒng)支持Unicode,那么,就能處理這些字符集。一般Unicode有兩個(gè)字節(jié)?,F(xiàn)在的windows操作系統(tǒng)都是支持Unicode的。
什么是UTF8呢?UTF8是一種Unicode編碼,即它的編碼的字符集和Unicode是一致的。但編碼的方式不一樣。對(duì)于英文字符來(lái)講,UTF8的編碼和一般的一樣,用到一個(gè)字節(jié)。但對(duì)于中文來(lái)講,那么要用三個(gè)字節(jié)表示(記憶中是三個(gè))。
UTF8和Unicode的缺點(diǎn)是在處理查找、搜索等問(wèn)題時(shí),好像算法上比較復(fù)雜,效率不高(記憶中)。
是Unicode傳送格式。即把Unicode文件轉(zhuǎn)換成BYTE的傳送流。
UTF8流的轉(zhuǎn)換程序:
Input: unsigned integer c - the code point of the character to be encoded (輸入一個(gè)unicode值)
Output: byte b1, b2,b3, b4 - the encoded sequence of bytes (輸出四個(gè)BYTE值)
Algorithm(算法):
if (c<0x80)
b1 = c>>0 & 0x7F | 0x00
b2 = null
b3 = null
b4 = null
else if (c<0x0800)
b1 = c>>6 & 0x1F | 0xC0
b2 = c>>0 & 0x3F | 0x80
b3 = null
b4 = null
else if (c<0x010000)
b1 = c>>12 & 0x0F | 0xE0
b2 = c>>6 & 0x3F | 0x80
b3 = c>>0 & 0x3F | 0x80
b4 = null
else if (c<0x110000)
b1 = c>>18 & 0x07 | 0xF0
b2 = c>>12 & 0x3F | 0x80
b3 = c>>6 & 0x3F | 0x80
b4 = c>>0 & 0x3F | 0x80
end if
=====================
unicode 是一種編碼表格,例如,給一個(gè)漢字規(guī)定一個(gè)代碼。類(lèi)似 GB2312-1980, GB18030等,只不過(guò)字集不同。
=====================
一個(gè)unicode碼可能轉(zhuǎn)成長(zhǎng)度為一個(gè)BYTE,或兩個(gè),三個(gè),四個(gè)BYTE的UTF8碼,取決于unicode碼的值。英文unicode碼因?yàn)橹敌∮?x80,只要用一個(gè)BYTE的UTF8傳送,比送unicode兩個(gè)BYTEs快。
UTF8是為傳送unicode而想出來(lái)的“再編碼”方法罷了。
UTF8轉(zhuǎn)unicode用我上面給的程序反算即可。
UTF8是現(xiàn)有ASCII系統(tǒng)轉(zhuǎn)向Unicode系統(tǒng)的一個(gè)過(guò)渡解決方案。UTF8是保證 ASCII兼容性,再向大字符集方向擴(kuò)展。這是Unicode推薦的方案。但是因 為解決問(wèn)題的角度不同,對(duì)現(xiàn)有的中文系統(tǒng)不是好的解決方案。 一下連接提供了詳細(xì)的 UTF8編碼的初步知識(shí) http://www.acnis.com/modules.php?name=ArticlE&file=article&sid=102 參考資料:http://www.acnis.com/modules.php?name=ArticlE&file=article&sid=102
什么是Unicode。Unicode的基本目標(biāo)是統(tǒng)一所有的編碼,即它包含所有的字符集。這樣只要一個(gè)系統(tǒng)支持Unicode,那么,就能處理這些字符集。一般Unicode有兩個(gè)字節(jié)?,F(xiàn)在的windows操作系統(tǒng)都是支持Unicode的。
什么是UTF8呢?UTF8是一種Unicode編碼,即它的編碼的字符集和Unicode是一致的。但編碼的方式不一樣。對(duì)于英文字符來(lái)講,UTF8的編碼和一般的一樣,用到一個(gè)字節(jié)。但對(duì)于中文來(lái)講,那么要用三個(gè)字節(jié)表示(記憶中是三個(gè))。
UTF8和Unicode的缺點(diǎn)是在處理查找、搜索等問(wèn)題時(shí),好像算法上比較復(fù)雜,效率不高(記憶中)。
您可能感興趣的文章:
- UTF-8 Unicode Ansi 漢字GB2321幾種編碼轉(zhuǎn)換程序
- Encode/Decode&ANSI<->UTF8兩個(gè)編碼工具 下載
- 淺析c++ 宏 #val 在unicode下的使用
- 淺析內(nèi)存對(duì)齊與ANSI C中struct型數(shù)據(jù)的內(nèi)存布局
- java實(shí)現(xiàn)十六進(jìn)制字符unicode與中英文轉(zhuǎn)換示例
- Mysql中的排序規(guī)則utf8_unicode_ci、utf8_general_ci的區(qū)別總結(jié)
- Unicode編碼大揭秘
- VC中實(shí)現(xiàn)GB2312、BIG5、Unicode編碼轉(zhuǎn)換的方法
- C語(yǔ)言中字符和字符串處理(ANSI字符和Unicode字符)
相關(guān)文章
CSS網(wǎng)頁(yè)布局入門(mén)教程14:縱向下拉及多級(jí)彈出式菜單
CSS網(wǎng)頁(yè)布局入門(mén)教程14:縱向下拉及多級(jí)彈出式菜單...2007-09-09CSS網(wǎng)頁(yè)布局入門(mén)教程6:左列固定,右列寬度自適應(yīng)
CSS網(wǎng)頁(yè)布局入門(mén)教程6:左列固定,右列寬度自適應(yīng)...2007-09-09Lesson03_01 什么是CSS和CSS的設(shè)置方式
Lesson03_01 什么是CSS和CSS的設(shè)置方式...2007-02-02資料:Unicode 漢字內(nèi)碼對(duì)應(yīng)表
資料:Unicode 漢字內(nèi)碼對(duì)應(yīng)表...2007-03-03