UNICODE是萬能編碼,包含了所有符號的編碼,它規定了所有符號在計算機底層的二進制的表示順序。
在UTF-8編碼中一個中文占三個字節
比如 漢字 "張" 對應的三字節編碼是[229 188 160]
但是如何判斷,229 188 160 是組合的呢,這里涉及到一套規則
UTF規定:
如果一個符號只占一個字節,那么這個8位字節的第一位就為0。
如果為兩個字節,那么規定第一個字節的前兩位都為1,然后第一個字節的第三位為0,第二個字節的前兩位為10
然后如果是三個字節的話,那么第一個字節的前三位為111,第四位為0,剩余的兩個字節的前兩位都為10。
所以一個字節最大是 011111111 轉換成十進制是 127 如果大於127則認為不止一個字節
兩個字節最大數是 11011111 10111111 轉成成十進制分別是223 和 191
兩個字節最大數是 11101111 10111111 10111111 轉成成十進制分別是239 和 191 和 191
這里設n為字節
n<128 則為1個字節
128<n<223為兩個字節
223<n<239 為三個字節
這樣可以輕松判斷出來是否是一組