Usando Ruby, tengo que enviar cadenas en forma de columna al terminal. Algo como esto:Ruby: Comprobando el ancho del este de Asia (Unicode)
| row 1 | a string here | etc
| row 2 | another string | etc
Puedo hacerlo bien con caracteres Latin UTF8 utilizando String # ljust y% s.
Pero surge un problema cuando los personajes son coreano, chino, etc. Las columnas simplemente no se alinean cuando hay filas de Inglés intercaladas con las filas que contienen coreano, etc.
¿Cómo puedo conseguir la alineación de la columna aquí ? ¿Hay alguna forma de mostrar caracteres asiáticos en el equivalente de una fuente de ancho fijo? ¿Qué tal si se trata de documentos que se muestran y editan en Vim?
Usando vim, tiene la configuración '' guifontwide'' que le permite elegir una fuente de ancho doble para texto asiático. – Benoit
Su elección de palabras es muy pobre. Asia es un lugar muy grande con muchos países, idiomas y sistemas de escritura. – koan
@dan Es el problema con solo idiomas coreanos/chinos/... {asiáticos} o con cualquier carácter cuyo 'len()' sea mayor que 1 (por ejemplo, '« '). Si lo es, entonces para obtener la longitud real del texto, use 'len (split (str, '\ zs'))' en lugar de 'len (str)' (vim-7.2, 'strwidth (str)' en vim- 7.3). – ZyX