سؤال

كيفية تحديد ما إذا كانت الحرف هي شخصية صينية تستخدم Ruby?

هل كانت مفيدة؟

المحلول

مقالة مثيرة للاهتمام حول الترميزات في روبي: http://blog.grayproductions.net/articles/bytes_and_characters_in_ruby_18 (إنه جزء من سلسلة - تحقق من جدول المحتويات في بداية المقالة أيضًا)

لم أستخدم الأحرف الصينية من قبل ولكن يبدو أن هذه هي القائمة التي يدعمها Unicode: http://en.wikipedia.org/wiki/list_of_cjk_unified_ideographs . لاحظ أيضًا أنه نظام موحد بما في ذلك الشخصيات اليابانية والكورية (تتم مشاركة بعض الشخصيات بينهما) - لست متأكدًا مما إذا كان يمكنك التمييز بين الصينيين فقط.

أعتقد أنه يمكنك التحقق مما إذا كان شخصية CJK عن طريق استدعاء هذا على String str و character مع الفهرس n:

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

نصائح أخرى

روبي 1.9

#encoding: utf-8   
 "漢" =~ /\p{Han}/
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top