首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可下载格式的12.1中所有137,929个命名Unicode字符的位置

可下载格式的12.1中所有137,929个命名Unicode字符的位置
EN

Stack Overflow用户
提问于 2019-06-05 03:32:57
回答 2查看 174关注 0票数 3

我已经下载了12.1.0 unicode数据,在文件UnicodeData.txt中只有32,841行,所以只有~30k个字符。不知道其他105,088个字符在哪里,我一直找不到它们。想知道他们是在Unihan.zip的某个地方,还是在UCD.zip的某个地方。我似乎找不到这个信息这里

想知道我用什么文件来结束一个包含所有命名字符的数据库。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-05 06:02:05

@CraigBarnes是正确的,UnicodeData.txt包含所有字符。这里有一些证明(Python代码):

代码语言:javascript
复制
import csv

D = {}

with open('UnicodeData.txt',encoding='utf-8-sig') as f:
    r = csv.reader(f,delimiter=';')
    for line in r:
        # Count all the CJK Ideograph and Hangul Syllable ranges and generate names
        if ('Ideograph' in line[1] or line[1].startswith('<Hangul')) and line[1].endswith('First>'):
            end = next(r)
            for i in range(int(line[0],16),int(end[0],16)+1):
                D[i] = [line[1][1:-8].upper() + '-' + f'{i:04X}'] + line[2:]
        elif line[1][0] == '<':
            continue # skip private use and control characters
        else:
            D[int(line[0],16)] = line[1:] # count everything else as one entry

print(len(D))

输出:

代码语言:javascript
复制
137929
票数 4
EN

Stack Overflow用户

发布于 2019-06-05 03:39:09

UnicodeData.txt中的一些条目是字符范围,如技术报告中所述。

为了向后兼容,文件UnicodeData.txt中的范围由范围的起始字符和结束字符的条目指定,而不是由表单“X.Y”指定。开始字符由范围标识符表示,后面跟着逗号和字符串"First",位于尖括号中。此条目取代了该行字段1中的常规字符名。在下一行中用相同的范围标识符表示结束字符,后面跟着逗号和字符串"Last",放在尖括号中:

代码语言:javascript
复制
4E00;<CJK Ideograph, First>;Lo;0;L;;;;;N;;;;;
9FEF;<CJK Ideograph, Last>;Lo;0;L;;;;;N;;;;;

换句话说,UnicodeData.txt文件中的行数与数据库中的字符数不一样。一些字符范围由数百个或数千个字符组成,这些字符仅用2行编码。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56453936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档