feat: 使用新机制实现 unicode range

This commit is contained in:
tiglog 2023-09-26 22:10:36 +08:00
parent f8fe348e1e
commit 1d915f347f
3 changed files with 2472 additions and 102 deletions

View File

@ -187,110 +187,8 @@ func GetCjkRange(code int) string {
result = "EXT-I" result = "EXT-I"
} else if code == 0x3007 { } else if code == 0x3007 {
result = "零" result = "零"
} else if code >= 0x31C0 && code <= 0x31EF {
result = "笔画"
} else if code >= 0x2E80 && code <= 0x2EFF {
result = "部首补充"
} else if code >= 0xE000 && code <= 0xF8FF { } else if code >= 0xE000 && code <= 0xF8FF {
result = "PUA" result = "PUA"
} else if code >= 0x2F00 && code <= 0x2FDF {
result = "康熙部首"
} else if code >= 0xF900 && code <= 0xFAD9 {
result = "兼容区"
} else if code >= 0xFE30 && code <= 0xFE4F {
result = "兼容形式"
} else if code >= 0x2F800 && code <= 0x2FA1D {
result = "兼容表意文字增补"
} else if code >= 0x3100 && code <= 0x312F {
result = "注音"
} else if code >= 0x17000 && code <= 0x187F7 {
result = "西夏文"
} else if code >= 0x18800 && code <= 0x18AFF {
result = "西夏文部首"
} else if code >= 0x18D00 && code <= 0x18D08 {
result = "西夏文增补"
} else if code >= 0x18B00 && code <= 0x18CFF {
result = "契丹文"
} else if code >= 0x0900 && code <= 0x097F {
result = "梵文"
} else if code >= 0x1B170 && code <= 0x1B2FF {
result = "女书"
} else if code >= 0x0F00 && code <= 0x0FFF {
result = "藏文"
} else if code >= 0x1800 && code <= 0x18AF {
result = "蒙古语"
} else if code >= 0x30A0 && code <= 0x30FF {
result = "日文片假名"
} else if code >= 0x31F0 && code <= 0x31FF {
result = "片假名扩展"
} else if code >= 0x3040 && code <= 0x309F {
result = "日文平假名"
} else if code >= 0x3000 && code <= 0x303F {
result = "符号和标点符号"
} else if code >= 0x2E00 && code <= 0x2E7F {
result = "补充标点符号"
} else if code >= 0x2200 && code <= 0x22FF {
result = "数学运算符号"
} else if code >= 0x2A00 && code <= 0x2AFF {
result = "补充数学运算符"
} else if code >= 0x2150 && code <= 0x218F {
result = "数字形式符号"
} else if code >= 0x2300 && code <= 0x23FF {
result = "杂项技术符号"
} else if code >= 0x27C0 && code <= 0x27EF {
result = "杂项数学符号-A"
} else if code >= 0x2980 && code <= 0x29FF {
result = "杂项数学符号-B"
} else if code >= 0x2190 && code <= 0x21FF {
result = "箭头符号"
} else if code >= 0x3190 && code <= 0x319F {
result = "汉文训读"
} else if code >= 0x3200 && code <= 0x32FF {
result = "带圈字符及月份"
} else if code >= 0x1F100 && code <= 0x1F1FF {
result = "带圈字母数字补充"
} else if code >= 0x1F200 && code <= 0x1F2FF {
result = "带圈表意文字补充"
} else if code >= 0x1D100 && code <= 0x1D1FF {
result = "音乐符号"
} else if code >= 0x1D360 && code <= 0x1D37F {
result = "算筹"
} else if code >= 0x1D300 && code <= 0x1D35F {
result = "太玄经符号"
} else if code >= 0x1F600 && code <= 0x1F64F {
result = "表情符号"
} else if code >= 0x2070 && code <= 0x209F {
result = "上下标"
} else if code >= 0x1D400 && code <= 0x1D7FF {
result = "字母和数字符号"
} else if code >= 0x25A0 && code <= 0x25FF {
result = "几何形状"
} else if code >= 0x1F780 && code <= 0x1F7FF {
result = "几何图形扩展"
} else if code >= 0x2630 && code <= 0x2637 {
result = "八卦"
} else if code >= 0x19904 && code <= 0x19967 {
result = "易经六十四卦符号"
} else if code >= 0x1FA00 && code <= 0x1FA6F {
result = "象棋符号"
} else if code >= 0x0370 && code <= 0x03FF {
result = "希腊语和科普特语"
} else if code >= 0x1F000 && code <= 0x1F02F {
result = "麻将牌"
} else if code >= 0x1F0A0 && code <= 0x1F0FF {
result = "扑克牌"
} else if code >= 0x20A0 && code <= 0x20CF {
result = "货币符号"
} else if code >= 0x1F680 && code <= 0x1F6FF {
result = "交通和地图符号"
} else if code >= 0x1F030 && code <= 0x1F09F {
result = "多米诺骨牌"
} else if code >= 0x1F300 && code <= 0x1F5FF {
result = "杂项符号和象形文字"
} else if code >= 0x2500 && code <= 0x257F {
result = "方框绘制字符"
} else if code >= 0x1F700 && code <= 0x1F77F {
result = "炼金术符号"
} }
return result return result

2451
helper/unicode_helper.go Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,21 @@
//
// unicode_helper_test.go
// Copyright (C) 2023 tiglog <me@tiglog.com>
//
// Distributed under terms of the MIT license.
//
package helper_test
import (
"fmt"
"testing"
"git.hexq.cn/tiglog/golib/helper"
)
func TestGetRange(t *testing.T) {
hp := helper.NewUnicodeHelper()
r1 := hp.GetRange(0xe0)
fmt.Println(r1)
}