屁牌兼容1位元組ASCII、2位元組陸港台日常用、單碼最多3位元組、全覆蓋Unicode編碼
正文
[00-7F]:對應Unicode [00-7F],即基本ASCII。
[80-EF][00-FF]:對應Unicode [30-9F][00-FF]。
3000—303F CJK Symbols and Punctuation3040—309F Hiragana30A0—30FF Katakana3100—312F Bopomofo3130—318F Hangul Compatibility Jamo3190—319F Kanbun31A0—31BF Bopomofo Extended31C0—31EF CJK Strokes31F0—31FF Katakana Phonetic Extensions3200—32FF* Enclosed CJK Letters and Months3300—33FF* CJK Compatibility3400—4DBF CJK Unified Ideographs Extension A4DC0—4DFF Yijing Hexagram Symbols4E00—9FFF CJK Unified Ideographs
其中標*的兩個1*100區塊例外:(因為沒啥卵用,但是不要慌,後面都能補回來)
82[00-FF]:原對應Unicode 32[00-FF];新對應Unicode FF[00-FF] (中文逗號、除了句號頓號的多種標點,各種全形形式符號都在裡面)。
FF00—FFEF Halfwidth and Fullwidth FormsFFF0—FFFF Special
其中再例外:
82[F0-F7]:原新對應Unicode FF[F0-F7](在Specials區,都是無定義碼位);
新新對應Unicode 20[18,19,1C,1D,14,26]、00B7、[待定]。
- (左右單引號,左右雙引號,半破折號,半省略號,間隔號)
- (都是那些用英文字體就會導致寬度不全形,比漢字小一號的符號,手動滑稽)
- (其實還有很多洞可以挖)
再例外結束
83[00-FF][00-FF]:原只後接1位元組,對應Unicode 33[00-FF];新改為後接2位元組,對應Unicode [00-FF][00-FF](整個基本多文種平面)。
- (所以都有重複對應,2位元組版改了任何語義,也都能3位元組調用原版)
例外結束
[F0-FF][00-FF][00-FF]:對應Unicode [1-10][00-FF][00-FF](全部16個擴展平面)
正文結束
美國·聖地亞戈
去他喵的自同步
去他喵的查找假陽性去他喵的分隔符兼容
反正是裝下了(而且並不是很費勁呢
彩蛋
如果你極其懶,就可以把Unicode直接如此對應:
83[0000-FFFF]:0000-FFFF
F[0-F][0000-FFFF]:[1-10][0000-FFFF]
這樣就成了每碼3位元組定長(
屁牌兼容1位元組ASCII,2位元組GB2312核心強化,單碼最多3位元組,全覆蓋Unicode,自同步編碼
正文開始
[00-7F] ASCII不多說
[A0-CF][00-9F] 48*160=7680 > 6763+682=7445 (GB2312全收錄)【怎麼對應隨便搞
[D0-FF][00-9F][00-9F] 48*160*160=1228800 > 17*65536=1114112 (Unicode全收錄)【怎麼對應隨便搞
自同步方法:
如果一個位元組不是[A0-FF],則其不一定是一個字元的開始,反之一定是。
如果連續3個字元是[00-7F],那麼最後一個一定是ASCII字元。
正文結束
最後祝你,身體健康,再見
推薦閱讀:
TAG:字元編碼 | Unicode統一碼 | GB2312/GBK/GB18030 |