Domanda

Come determinare se un personaggio è un carattere cinese con Ruby?

È stato utile?

Soluzione

Un articolo interessante su codifiche in Ruby: http://blog.grayproductions.net/articles/bytes_and_characters_in_ruby_18 (parte si dispone di una serie - controllare la tabella dei contenuti, all'inizio di questo articolo anche)

Non ho usato i caratteri cinesi prima, ma questa sembra essere la lista sostenuto da Unicode: http: / /en.wikipedia.org/wiki/List_of_CJK_Unified_Ideographs . Anche prendere atto che si tratta di un sistema unificato compresi giapponesi e coreani (alcuni caratteri sono condivisi tra di loro) - non so se è possibile distinguere quali sono cinese solo

.

Penso che si può verificare se si tratta di un personaggio CJK chiamando questo su stringa str e il carattere con indice 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

Altri suggerimenti

Ruby 1.9

#encoding: utf-8   
 "漢" =~ /\p{Han}/
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top