如何确定角色是否是汉字

如何判断一个角色是否是使用ruby的汉字?

关于Ruby中编码的一篇有趣的文章: http : //blog.grayproductions.net/articles/bytes_and_characters_in_ruby_18 (它是系列文章的一部分 – 同时检查文章开头的目录)

我之前没有使用过汉字,但这似乎是unicode支持的列表: http : //en.wikipedia.org/wiki/List_of_CJK_Unified_Ideographs 。 另请注意,它是一个统一的系统,包括日语和韩语字符(它们之间共享一些字符) – 不确定是否可以区分哪些只是中文。

我想你可以通过在字符串str和字符索引n上调用它来检查它是否是CJK字符:

def check_char(str, n) list_of_chars = str.unpack("U*") char = list_of_chars[n] #main blocks if char >= 0x4E00 && char <= 0x9FFF return true end #extended block A if char >= 0x3400 && char <= 0x4DBF return true end #extended block B if char >= 0x20000 && char <= 0x2A6DF return true end #extended block C if char >= 0x2A700 && char <= 0x2B73F return true end return false end 

Ruby 1.9

 #encoding: utf-8 "漢" =~ /\p{Han}/