Cuando lo usé cut
hoy, descubrí que no trata un carácter UTF-8 como un carácter, sino 3 caracteres porque tiene 3 bytes de longitud.
Esto parece ser generalmente cierto para muchas herramientas.
¿Hay versiones de los coreutils
que son conscientes de UTF-8?
Mi locale
salida:
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
Aquí es cuando cut
no funciona
echo 哈哈 | cut -c 2-
��哈
La salida correcta debería ser
哈
si cut -c
funciona con caracteres multibyte.
cut
línea de comando?
echo ßßßß | cut -c 2-
-> �ßßß
( LANG=en_US.UTF-8
)
locale
correctamente? ¿Cuál es la lectura de lalocale
invocación de comandos (sin argumentos)?