简体中文Unicode表格

11

我在哪里可以找到一个Unicode表,仅显示简体中文字符? 我已经到处搜索了,但什么都找不到。

更新 :
我发现还有另一种编码叫做GB 2312 -
http://en.wikipedia.org/wiki/GB_2312
- 只包含简体字符。
我可以使用这个来得到我需要的内容吗?

我还找到了这个将GB2312映射到Unicode的文件 -
http://cpansearch.perl.org/src/GUS/Unicode-UTF8simple-1.06/gb2312.txt
- 但我不确定它是否准确。

如果那个表不正确,也许有人可以指向一个正确的表,或者只是一个GB2312字符表以及一些转换方法?

更新 2 :
这个网站还提供了一个GB/Unicode表,甚至提供了一个Java程序来生成一个包含所有GB字符及其Unicode等效项的文件:
http://www.herongyang.com/gb2312/

6个回答

17

Unihan数据库在文件Unihan_Variants.txt中包含这些信息。例如,一对繁体/简体字符如下:

U+673A  kTraditionalVariant     U+6A5F
U+6A5F  kSimplifiedVariant      U+673A

在上述情况中,U+6A5F是機的繁体形式,机的Unicode编码为U+673A。

另一种方法是使用CC-CEDICT项目,该项目发布了一个包含汉字和词语(包括繁体和简体)的词典。每个条目看起来像这样:

宕機 宕机 [dang4 ji1] /to crash (of a computer)/Taiwanese term for 當機|当机[dang4 ji1]/

第一列是繁体字符,第二列是简体字符。

要获取所有简化字符,请阅读此文本文件并列出出现在第二列中的每个字符。请注意,有些字符可能不会单独出现(仅在复合词中出现),因此仅查看单字符条目是不足够的。


我应该在哪里找到 Unihan_Variants.txt 文件? - cmann
1
@cmann:最新的Unihan数据库在这里:Unihan.zip。请注意,只有一些字符具有繁简体变体,因此并非所有字符都Unihan_Variants.txt中的条目。我想这取决于您是想要“简体中文中使用的所有字符”还是“仅在简体中文中与繁体不同的简化字符”。 - Greg Hewgill
我想可能没有必要拥有所有的字符,只需要最常见的那些就足够了吧?也许可以考虑一下中国学校教授的字符。 - cmann
1
@cmann:在那种情况下,可以查看汉语水平考试词汇表。这些是中华人民共和国官方的汉语能力测试。 - Greg Hewgill
但这似乎涵盖了简体和繁体字符。 - cmann
显示剩余3条评论

10

虽然OP没有指明他们使用的是哪种语言,但如果您在使用Ruby,我写了一个小型库,可以区分简体和繁体中文(还有韩文和日文作为额外奖励)。如Greg的回答所建议的,它依赖于Unihan_Variants.txt的精简版本来确定哪些字符是纯粹的简化,哪些是纯粹的传统。

https://github.com/jpatokal/script_detector

示例:

p string
=> "我的氣墊船充滿了鱔魚."
> string.chinese?
=> true
> string.traditional_chinese?
=> true
> string.simplified_chinese?
=> false

但正如Unicode FAQ所警告的那样,这需要相当大的文本片段才能可靠地工作,并且对于短字符串会给出误导性的结果。考虑一下东京的日语:

p string
=> "東京"
> string.chinese?
=> true
> string.traditional_chinese?
=> true
> string.japanese?
=> false

由于这两个字符也是合法的繁体中文字符,且没有专属于日语的字符,因此它无法被正确识别。


1
这是一项伟大的工作!那个代码点列表文件(https://github.com/jpatokal/script_detector/blob/master/lib/chinese_detector.rb)是一项了不起的工作。不知道为什么会有几个赞给了这个答案... - cxwangyi

1

我不确定这是否容易完成。汉字在Unicode中是统一的,因此如何实现并不明显。但是Unihan数据库(http://www.unicode.org/charts/unihan.html)可能具有您所需的数据。


1
这是我制作的所有简体中文字符的正则表达式。由于某些原因,Stackoverflow在抱怨,所以下面链接了pastebin。

https://pastebin.com/xw4p7RVJ

你会注意到这个列表中包含的是范围而不是每个单独的字符,但也注意到这些是utf-8字符,而不是转义表示。自从2010年左右以来,它在一个迭代或另一个迭代中为我服务得很好。希望现在其他人也能好好利用它。
如果你不想要简化字符(我无法想象为什么,在9年中从未出现过),可以遍历所有来自['一-龥']的字符并尝试构建一个新列表。或者运行两个正则表达式,一个用于检查它是否是中文,但不是简体中文。

过去的 pastebin 链接已经失效了,你能重新发布一个链接吗? - Mike Maxwell
我其实不知道它在哪里,如果它们被删除了。我确实标记了它永久存在。互联网上的某些普通人可能已经用版权申诉来恶意破坏了它。如果我在旅途中遇到它,我会重新发布。我确实有它,但它可能在哪儿是另一个问题。 - MrMesees

0

根据维基百科所述,简体中文和繁体中文、日本汉字或其他格式取决于许多情况下的字体呈现。因此,虽然您可以选择简体中文代码点,但由于许多字符不再是明显的,所以这个列表不完整。


这肯定不是不可能的吧?例如,在Flash IDE中,您可以选择繁体中文、简体中文或中文全部。他们是如何做到的呢? - cmann
好的,字体选择将涵盖字形选择。因此,当特定代码点在多种样式中可用时,简体中文字体将显示简体中文字形。 - Michael Lowman
Greg的回答完全准确;链接的页面是主页面。它具有与数据库的Web界面,但支持文件链接在页面上:“要访问最新版本的原始数据文件(Unihan.zip),请参见http://www.unicode.org/Public/UNIDATA/。” - Michael Lowman

0

1
在阅读了这个范围后,我也同意这个观点。我是一名中文母语者,同时熟悉简体和繁体中文。 - cxwangyi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接