验证假名输入

Zac*_*man 4 language-agnostic unicode validation cjk

我正在开发一个允许用户输入日语字符的应用程序.我试图想出一种方法来确定用户的输入是否是日本假名(平假名,片假名或汉字).

应用程序中的某些字段输入拉丁文本是不合适的,我需要一种方法将某些字段限制为仅限汉字,或仅限片假名等.

该项目使用UTF-8编码.我不希望接受JIS或Shift-JIS输入.

想法?

coo*_*ird 6

不确定一个完美的答案,但维基百科上列出的片假名平假名有一个Unicode范围.(我也期望从unicode.org获得.)

  • 平假名:Unicode:3040-309F
  • 片假名:Unicode:30A0-30FF

根据输入检查这些范围应该以语言无关的方式验证Unicode的平假名或片假名.

对于汉字,我希望它有点复杂,因为我希望中文和日文中使用的汉字都包含在同一范围内,但话说回来,我可能错了.(我不能指望将简体中文和繁体中文包含在同一范围内......)


Jon*_*eet 6

听起来你基本上只需要检查每个Unicode字符是否在特定范围内.该Unicode代码图表应该是一个很好的起点.

如果您正在使用.NET,我的MiscUtil库有一些Unicode范围支持 - 它是原始的,但它应该完成这项工作.我现在没有动手来源,但如果有帮助的话,稍后会用一个例子来更新这篇文章.