Detect if character is simplified or traditional Chinese character
我发现了这个问题,这使我能够检查字符串是否包含汉字。 我不确定unicode范围是否正确,但是对于日语和韩语,它们似乎返回false,对于中文,它们返回true。
它不会做的是告诉您该字符是繁体中文还是简体中文。 您将如何找到答案?
更新
Q: How can I recognize from the 32 bit value of a Unicode character if this is a Chinese, Korean or Japanese character?
http://unicode.org/faq/han_cjk.html
他们认为字符不分形状的说法具有相同的含义,因此应使用相同的代码表示。 嗯,这对我来说不是没有意义的,因为我正在分析与他们的解决方案不兼容的单个字符:
A better solution is to look at the text as a whole: if there's a fair amount of kana, it's probably Japanese, and if there's a fair amount of hangul, it's probably Korean.
如前所述,您不能从单个字符中可靠地检测脚本样式,但是可能会有足够长的文本样本。请参阅https://github.com/jpatokal/script_detector以获取可完成此工作的Ruby gem,以及有关常规讨论的简体中文Unicode表。
某些字符是可能的。传统字符集和简化字符集重叠,因此您基本上拥有三组字符:
以字符面为例。它同时属于#2和#3 ...作为简化字符,它代表面和面,面和面条。而面仅是传统字符。因此,在Unihan数据库中,面有一个
但是面也有一个
另一方面,韩文具有
正如我认为您已经发现的那样,您做不到。简体和繁体只是两种书写同一字符的样式-就像欧洲语言的罗马文字和哥特文字之间的区别。