Wie Sie feststellen, ob ein Zeichen ein chinesisches Schriftzeichen, ist Rubin mitWie Sie feststellen, ob ein Zeichen ein chinesisches Zeichen ist
Antwort
einen interessanten Artikel über Codierungen in Ruby: http://blog.grayproductions.net/articles/bytes_and_characters_in_ruby_18 (es ist Teil einer Reihe - überprüfen Sie das Inhaltsverzeichnis am Anfang des Artikels auch)
Ich habe chinesische Schriftzeichen vorher nicht benutzt, aber das scheint die Liste zu sein, die von Unicode unterstützt wird: http://en.wikipedia.org/wiki/List_of_CJK_Unified_Ideographs. Beachten Sie auch, dass es sich um ein einheitliches System mit japanischen und koreanischen Zeichen handelt (einige Zeichen werden zwischen ihnen geteilt) - nicht sicher, ob Sie unterscheiden können, welche nur Chinesisch sind.
Ich glaube, Sie können prüfen, ob es durch den Aufruf dieser auf String str und Zeichen mit dem Index n ein CJK Zeichen ist:
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
vielen dank – HelloWorld
sind das die tatsächlichen Unicode-Bereiche für chinesische Schriftzeichen? – s84
@sam sind sie die CJK-Bereiche. Dies sind die chinesischen, japanischen und koreanischen Zeichen (vorausgesetzt, die Bereiche sind korrekt, was ich glaube, sie sind) –
Rubin 1,9
#encoding: utf-8
"漢" =~ /\p{Han}/
Ich benutze diesen Code, aber es kann nicht funktionieren Dies ist Fehlerinfo: Name der ungültigen Zeicheneigenschaft {Han}:/\ p {Han}/ – HelloWorld
@HelloWorld: Aktualisieren Sie Ihre Version von Ruby. Alle Charaktere Klassen sind jetzt dokumentiert: http://github.com/ruby/ruby/blob/trunk/doc/re.rdoc (cooler Nick, BTW) –
Der obige Link ist kaputt, aber Sie können alle Informationen im Rubin finden docs for regexp: http://www.ruby-doc.org/core-2.0.0/Regexp.html#label-Character+Properties – deRailed
Sie in der Regel mehr Striche als Katakana oder Hiragana haben. Und im Allgemeinen solltest du Ruby nur auf komplexeren Kanji verwenden ... warte einen Moment, ist dieser Japans.SE- oder Stack-Überlauf? –