判断一个字符是简体字还是繁体字。

想了半天只想出这一种做法,就是用 opencc 做简繁转换,然后对比原字符。


示例,判断字符是否为繁体字:

把字符进行繁转简。

c1 和繁转简后一致,则 c1 是简体字;

c2 和繁转简后不同,则 c2 是繁体字。

import opencc

converter = opencc.OpenCC('t2s.json')  # 繁体→简体

c1 = '门'
print(c1 == converter.convert(c1))  # '门' == '门' True

c2 = '門'
print(c2 == converter.convert(c2))  # '門' != '门' False

但并不完全成功:

import opencc

converter = opencc.OpenCC('t2s.json')  # 繁体→简体

for _, c in enumerate(['鴞', '鶲', '鮡', '鮠', '鮣', '鮋', '鮈', '鮊', '鰺', '鰏', '鰟']):
    print(c+' -> '+converter.convert(c))
    if c == converter.convert(c):
        print(c)
# 鴞 -> 鸮
# 鶲 -> 鹟
# 鮡 -> 鮡
# 鮡
# 鮠 -> 鮠
# 鮠
# 鮣 -> 䲟
# 鮋 -> 鲉
# 鮈 -> 鮈
# 鮈
# 鮊 -> 鲌
# 鰺 -> 鲹
# 鰏 -> 鲾
# 鰟 -> 鳑

试了一些超冷门的字,如「鮡 鮠 鮈」并没有被转换为「𬶐 𬶏 𬶋」。

另外还有一些问题,如「乾」会被识别为繁体字,转换为「干」。