版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
本文格式為Word版,下載可任意編輯——談?wù)刾hp中的unicode和utf8編碼談?wù)刾hp中的unicode和utf8編碼
本文給大家深入議論了unicode和utf8這兩種編碼的關(guān)系,理解好了會察覺網(wǎng)上一些舊的東西,是嚴(yán)重多余兼過期的,由于從utf-8流行開頭到現(xiàn)在,早已經(jīng)由原來六字節(jié)可變編碼到實(shí)際完全居于unicodeUCS-2的穩(wěn)定階段。
重新熟悉unicode和utf8編碼
直到今天,切實(shí)的說是方才,我才知道UTF-8編碼和Unicode編碼是不一樣的,是有識別的囧
他們之間是有確定的聯(lián)系的,看看他們的識別:
UTF-8的長度是不確定的,有可能是1、2、3字節(jié)
Unicode長度確定,2個字節(jié)(USC-2)
UTF-8可以和Unicode彼此轉(zhuǎn)換
unicode和utf8的關(guān)系
Unicode16進(jìn)制
UTF-8二進(jìn)制
0000-007F0xxxxxxx
0080-07FF110xxxxx10xxxxxx
0800-FFFF1110xxxx10xxxxxx10xxxxxx
上面的表格有2個意思,第一個顯而易見就是說Unicode和UTF-8字符范圍的對應(yīng),還有一個可以看出Unicode怎么和UTF-8彼此轉(zhuǎn)換:
先說UTF-8到Unicode的轉(zhuǎn)換
UTF-8編碼的二進(jìn)制和上面的3種格式舉行匹配,匹配到之后去掉固定位(表格中的非x位置),然后從右到左每8位一組,不夠8位左邊不領(lǐng),湊夠2個字節(jié)16bits,這16bits所表示的就是UTF-8對應(yīng)的Unicode編碼,看看下面幾個例子:
上面圖片中的文字編碼格式為UTF-8,可以用WinHex看到其16進(jìn)制表示
復(fù)制代碼代碼如下:
字符=UTF-8=UTF-8二進(jìn)制=去掉固定位置湊夠16位的二進(jìn)制=16進(jìn)制
漢=E6B189=111001101011000110001001=0110110001001001=6C49
字=E5AD97=111001011010110110010111=0101101101010111=5B57
#下面是在chrome命令行下面運(yùn)行的結(jié)果
\u6C49
漢
\u5B57
字
#到這里的'話,從UTF-8轉(zhuǎn)換到Unicode已經(jīng)是一件分外輕易的事了,看看轉(zhuǎn)換的偽代碼
讀取一個字節(jié),11100110
判斷該UTF-8字符的格式,屬于第三種,3個字節(jié)
持續(xù)讀取2個字節(jié)得到111001011010110110010111
按照格式去掉固定位101101101010111
不夠16位,左邊補(bǔ)零0101101101010111=5B57
再看看從Unicode到UTF-8的轉(zhuǎn)換
復(fù)制代碼代碼如下:
5B57
獲取5B57所在的Unicode范圍,0800=5B57=FFFF,得知5B57的UTF-8有三個字節(jié),形式為1110xxxx10xxxxxx10xxxxxx
獲取5B57的二進(jìn)制編碼101101101010111
用上一步驟的二進(jìn)制編碼從右至左拼接UTF-8編碼111001011010110110010111
說說問題
再說說今天這個問題的起因,從前端輸入好多單詞,UTF-8格式每個詞最多30個字節(jié),因此會在前端和后臺分別做驗(yàn)證,javascript用的是Unicode編碼,后端程序用的是UTF-8編碼,現(xiàn)在的解決手段是這樣
前端
?
1
2
3
4
談?wù)刾hp中的unicode和utf8編碼
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
functionutf8_bytesstr
varlen=0,unicode;
forvari=0;istr.length;i++
unicode=str.charCodeAti;
ifunicode0x0080
++len;
elseifunicode0x0800
len+=2;
elseifunicode=0xFFFF
len+=3;
else
throwcharactersmustbeUSC-2!!
returnlen;
#例子
utf8_bytesasdasdas
8
utf8_bytesyrt燕睿濤
12
后臺
?
1
2
3
4
#對于GBK字符串
$len=ceils
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 手機(jī)掛粉協(xié)議書
- 熱菜供應(yīng)合同范本
- 苗圃苗木協(xié)議書
- 蒙特列爾協(xié)議書
- 融資合同范協(xié)議
- 解除合同免責(zé)協(xié)議
- 認(rèn)購協(xié)議沒合同
- 設(shè)備續(xù)費(fèi)協(xié)議書
- 說媒贍養(yǎng)協(xié)議書
- 2025廣東廣州市勞動人事爭議仲裁委員會招聘兼職仲裁員備考筆試試題及答案解析
- 2026年度安全教育培訓(xùn)計(jì)劃培訓(xùn)記錄(1-12個月附每月內(nèi)容模板)
- 廣東省深圳市寶安區(qū)2024-2025學(xué)年八年級上學(xué)期1月期末考試數(shù)學(xué)試題
- 2023電氣裝置安裝工程盤、柜及二次回路接線施工及驗(yàn)收規(guī)范
- 大量不保留灌腸
- 2025年江蘇省安全員C2本考試題庫+解析及答案
- 物業(yè)經(jīng)理競聘管理思路
- 臨床營養(yǎng)管理制度匯編
- 購銷合同電子模板下載(3篇)
- 防洪評價進(jìn)度安排方案(3篇)
- 胃腸減壓技術(shù)操作并發(fā)癥
- 院感職業(yè)防護(hù)教學(xué)課件
評論
0/150
提交評論