我发现这个问题让我能够检查字符串是否包含中文字符.我不确定unicode范围是否正确但是它们似乎对日语和韩语都是假的,对中文来说是真的.
它没有做的是判断角色是传统的还是简体中文.你怎么会发现这个?
问:如果这是一个中文,韩文或日文字符,我如何识别Unicode字符的32位值?
http://unicode.org/faq/han_cjk.html
他们认为角色无论形状如何都具有相同的含义,因此应该用相同的代码来表示.嗯,这对我来说没有意义,因为我正在分析与他们的解决方案无关的个别角色:
一个更好的解决方案是整个文本:如果有相当数量的假名,它可能是日语,如果有相当数量的韩语,它可能是韩语.
如前所述,您无法从单个字符可靠地检测脚本样式,但可以使用足够长的文本样本.有关执行此任务的Ruby gem以及简体中文Unicode表,请参阅https://github.com/jpatokal/script_detector以进行一般性讨论.
某些字符是可能的。繁体和简体字符集重叠,因此您基本上拥有三组字符:
拿性格?例如。它既属于#2 又属于#3... 作为简体字,它代表? 和?、 脸和面条。然而 ?只是一个传统字符。那么在 Unihan 数据库中, ? 有kSimplifiedVariant,指向?. 所以你可以推断它只是一个繁体字。
但是?也有一个kTraditionalVariant,指向哪个?. 这就是系统崩溃的地方:如果您使用此数据来扣除?只是一个简化字符,你错了...
另一方面,? 有一个kTraditionalVariant,指向? ,这两个是“真正的”简化/传统对。但是 Unihan 数据库中没有像 ?/? 从像 ?/? 这样的情况。
| 归档时间: |
|
| 查看次数: |
9024 次 |
| 最近记录: |