Cómo determinar si un carácter es un carácter chino usando rubícómo determinar si un carácter es un carácter chino
Respuesta
un interesante artículo sobre codificaciones en Ruby: http://blog.grayproductions.net/articles/bytes_and_characters_in_ruby_18 (que es parte de una serie - consulte la tabla de contenido al principio del artículo también)
No he usado caracteres chinos anteriormente, pero esta parece ser la lista soportada por unicode: http://en.wikipedia.org/wiki/List_of_CJK_Unified_Ideographs. También tenga en cuenta que se trata de un sistema unificado que incluye caracteres japoneses y coreanos (algunos caracteres se comparten entre ellos). No estoy seguro si puede distinguir cuáles son solo chinos.
creo que se puede comprobar si se trata de un personaje CJK llamando a esto en la cadena str y el carácter con el índice 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
muchas gracias – HelloWorld
¿son estos los rangos de Unicode reales para caracteres chinos? – s84
@sam son los rangos CJK. Estos son los caracteres chinos, japoneses y coreanos (asumiendo que los rangos son correctos, lo que creo que son) –
Rubí 1,9
#encoding: utf-8
"漢" =~ /\p{Han}/
Uso este código, pero no puede funcionar Esto es información de error: nombre de propiedad de carácter no válido {Han}:/\ p {Han}/ – HelloWorld
@HelloWorld: Actualice su versión de Ruby. Todas las clases de caracteres están documentadas ahora: http://github.com/ruby/ruby/blob/trunk/doc/re.rdoc (genial nick, BTW) –
El enlace de arriba está roto, pero puedes encontrar toda la información en el rubí docs for regexp: http://www.ruby-doc.org/core-2.0.0/Regexp.html#label-Character+Properties – deRailed
- 1. Cómo determinar si KeyCode es carácter imprimible
- 2. Cómo extraer un trazo de un carácter chino
- 3. Determinar si JavaScript e.keyCode es un carácter imprimible (sin control)
- 4. Determine si un carácter es alfabético
- 5. Detecta si el carácter se simplifica o el carácter chino tradicional
- 6. Determine si el primer carácter de NSString es un número
- 7. comprobar si un solo carácter es un espacio en blanco?
- 8. cómo comprobar si el carácter es un número entero
- 9. ¿Cómo determinar qué fuentes contienen un carácter específico?
- 10. Compruebe si MyString [1] es un carácter alfabético?
- 11. Cómo comprobar si un carácter Java es un símbolo de moneda
- 12. Determinar la ubicación y de un carácter para representar texto
- 13. hexadecimal 0x19 es un carácter no válido
- 14. ¿Cómo puedo determinar un carácter Unicode desde su nombre en Python, incluso si ese personaje es un personaje de control?
- 15. ¿Cómo determinar si un personaje es una letra en Java?
- 16. ¿Qué es un carácter nulo binario?
- 17. Dividir en un carácter único
- 18. ¿Cómo comprobar si un carácter está en mayúscula en Python?
- 19. Cómo comprobar si NSString comienza con un cierto carácter
- 20. ¿Es un carácter válido en XML?
- 21. Cómo insertar un carácter en un NSString
- 22. Lectura de un archivo carácter por carácter en C
- 23. ¿Cómo puedo verificar si el primer carácter de mi cadena es un carácter de espacio o tabulación?
- 24. ¿cómo chequea() si la entrada es un número entero o un carácter?
- 25. ¿Cómo comprobar si un carácter es un dígito o no en Objective-C?
- 26. Regex cómo hacer coincidir un carácter opcional
- 27. cómo comprobar si la cadena contiene carácter '+'
- 28. iTerm2 imprimiendo un carácter nulo
- 29. ¿Cómo hago un carácter "^" en MATLAB?
- 30. ¿Cómo saber si .keyup() es una tecla de carácter (jQuery)
lo general, tienen más accidentes cerebrovasculares que katakana o hiragana. Y en general, se supone que debes usar ruby solo en los kanji más complejos ... espera un momento, ¿es este Japanese.SE o stack overflow? –