mirror of
https://github.com/xiaoqidun/ofdgo.git
synced 2026-10-30 01:27:26 +08:00
1 parent
078b67ccf0
commit
8dfd610cd5
1 file changed
+7
-6
@@ -1355,16 +1355,17 @@ func adobeGB1CIDToUnicode(cid int) (rune, bool) {
|
|||||||
if row < 16 || row > 87 || cell < 1 || cell > 94 {
|
if row < 16 || row > 87 || cell < 1 || cell > 94 {
|
||||||
return 0, false
|
return 0, false
|
||||||
}
|
}
|
||||||
gbk := []byte{byte(row + 0xA0), byte(cell + 0xA0)}
|
gbk := [2]byte{byte(row + 0xA0), byte(cell + 0xA0)}
|
||||||
decoded, err := simplifiedchinese.GBK.NewDecoder().Bytes(gbk)
|
var decoded [2 * utf8.UTFMax]byte
|
||||||
if err != nil || len(decoded) == 0 {
|
nDst, nSrc, err := simplifiedchinese.GBK.NewDecoder().Transform(decoded[:], gbk[:], true)
|
||||||
|
if err != nil || nDst == 0 || nSrc != len(gbk) {
|
||||||
return 0, false
|
return 0, false
|
||||||
}
|
}
|
||||||
rs := []rune(string(decoded))
|
r, size := utf8.DecodeRune(decoded[:nDst])
|
||||||
if len(rs) != 1 {
|
if size != nDst {
|
||||||
return 0, false
|
return 0, false
|
||||||
}
|
}
|
||||||
return rs[0], true
|
return r, true
|
||||||
}
|
}
|
||||||
|
|
||||||
// getUnicodeFromName 根据字形名称获取对应的Unicode字符
|
// getUnicodeFromName 根据字形名称获取对应的Unicode字符
|
||||||
|
|||||||
Reference in new issue
Block a user