屁牌兼容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 |